在用VBA操作文件和文件夹的过程中,除了新建文件夹,我们还经常需要与文件夹有个人机交互的过程,比如选择文件所在的文件夹,然后再执行一系列VBA动作。
这个选择的过程也是打开文件夹的一种,这种在VBA里用内置的对话框对象FileDialog就可以实现。
今天要讲的打开文件夹不是这种,而是指在完成了一系列VBA动作后,如何直接打开结果文件夹,看下执行的情况。
以前我们往往都是执行完程序后,再用鼠标去打开结果文件夹看下结果,今天介绍的方法可以直接连这个鼠标步骤都免了。
接下来介绍几种在vba中打开文件夹的方法:
1.用Shell函数打开指定的文件夹
代码如下:
Sub exceloffice()
'*****************
'上面一连串代码
'最后打开文件夹看下效果
Dim sPath As String
sPath = "c:\test"
Shell "explorer.exe " & sPath, vbMaximizedFocus
End Sub
Shell函数是vba内置的函数,使用起来非常方便。它可以直接运行各种exe程序,同时附带参数运行。
使用Shell函数还可以
直接运行Python打包后的exe程序,从而借助Python的强大功能助推VBA
。
在本例中,Shell函数通过调用文件资源管理器
explorer.exe
直接打开指定的文件夹,其中
vbMaximizedFocus
表示打开的时候最大化显示。
方法二:用
Shell
对象打开指定的文件夹
代码如下:
Sub exceloffice()
'*****************
'上面一连串代码
'最后打开文件夹看下效果
Dim sPath As String
sPath = "c:\test"
Dim oShell As Object
Set oShell = VBA.CreateObject("shell.application")
With oShell
.Open (sPath)
End With
End Sub
其实这个原理和Shell是一样的,但是S
hell
对象提供了自动化接口,功能更全,不仅可以打开文件夹,还可以做很多操作电脑的事情。
比如切换到桌面、打开运行对话框、关闭电脑等等,如下所示
Sub exceloffice()
Set oShell = CreateObject("shell.application")
With oShell
'切换到桌面
.ToggleDesktop
'打开运行对话框
.FileRun
'关闭电脑,记得保存文件
.ShutdownWindows
End With
End Sub
最后附上Shell对象的所有方法列表: