2016-04-26 79 views
1

我已經創建了一個宏,該宏在預定的程序中打開一個文件(例如用於pdf的Acrobat,用於文檔的Word,用於xls的Excel)。但是,某些程序(如Windows照片查看器和Zip文件程序)是一個dll文件。如何修改我的代碼以使其適用於非.exe應用程序?VBA打開文件和dll程序

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 

呼叫外殼功能不起作用。計算機發回運行時錯誤'5':無效的過程調用或參數。

回答

1

嘗試在CMD.exe中使用START命令 - 如果文件類型已經在系統的註冊表中關聯,則不需要指定該程序。

Shell "CMD /C START " & strPath 

(無需對Call關鍵字BTW)

進一步指出:如果文件沒有關聯,它仍然應該運行,但提示您指定一個程序來打開該文件。