我们知道,在Excel VBA 中,使用Workbooks.Open方法,可以打开Excel文件,但是要想拓展VBA的自动办公交互能力,有时还需要打开除Excel之外的其他类型文件。那么打开其他类型的文件在VBA中可以有哪些途径呢?
1.使用VBA中的shell函数
Shell函数是VBA自带的函数,作用是“运行一个可执行程序并在成功时返回表示程序的任务 ID 的 Variant 电脑(Double);否则返回零。
语法:Shell(pathname, [ windowstyle ])
说明:pathname 指可执行程序的完整路径
windowstyle 可执行程序打开时的窗口样式
使用方法1:shell "explorer.exe spath",spath为待打开的文件完整路径
使用方法2:Shell "rundll32.exe url.dll,FileProtocolHandler spath"
2.使用FollowHyperlink方法
FollowHyperlink方法用于使用默认方式打开一个已存档的文档,或者下载网络文档后使用默认方式打开文档
语法:WorkBook.FollowHyperlink (Address, SubAddress, NewWindow, AddHistory, ExtraInfo, Method, HeaderInfo)
说明:Address, SubAddress为文件的地址和子地址,
使用方法:ActiveWorkbook.FollowHyperlink Address:=spath, NewWindow:=True,spath为待电脑 打开的文件完整路径
3.使用shellexecute 电脑 API函数
shellExecute的功能是运行一个外部程序,或者打开一个已注册的文件、打开一个目录、打印文件等等功能,它可以打开电脑电脑内的任何文件,也可以打开URL。
函数声明:Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
说明:hwnd指定父窗口句柄,lpOperation要执行的操作,可以为open(默认,表示打开文件)、explort(打开文件夹)、print(打印文件),lpParamete指定可执行程序的参数(发开文件时应为null)lpFile指定待操作的文件,lpDirectory指定默认目录,nShowCmd指定窗口显示方式。
使用方法:ShellExecute(NULL,"open",spath,NULL,NULL,1);
电脑