VBA打开一个文件和DLL程序

时间:2016-04-26 21:42:31

标签: vba shell dll

我创建了一个宏来打开预定程序中的文件(例如,Acrobat for pdf,Word for docs,Excel for xls)。但是,某些程序(如Windows Photo Viewer和Zip File程序)是一个dll文件。如何修改我的代码以使其适用于非.exe应用程序?

Sub PhotoChart()

Dim strPath As String
Dim strProgram As String

    strPath = "C:\Libraries\Photos\WeeklyPlanner.png"
    strProgram = "C:\Program Files (x86)\Windows PhotoViewer\PhotoViewer.dll"

    Call Shell("""" & strProgram & """ """ & strPath & """", vbNormalFocus)


End Sub

Call Shell功能不起作用。计算机发回运行时错误' 5:无效的过程调用或参数。

1 个答案:

答案 0 :(得分:1)

尝试在CMD.exe中使用START命令 - 如果文件类型已在系统注册表中关联,则不需要指定程序。

Shell "CMD /C START " & strPath

(不需要Call关键字btw)

进一步说明:如果文件没有关联,它仍然应该运行,但会提示您指定一个程序来打开文件。