返回列表 上一主題 發帖

[發問] 如何VBA不指定軟體開啟特定檔案

  1. #If VBA7 Then
  2.   Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteW" (ByVal hWnd As LongPtr, ByVal lpOperation As LongPtr, ByVal lpFile As LongPtr, ByVal lpParameters As LongPtr, Optional ByVal lpDirectory As LongPtr = 0^, Optional ByVal nShowCmd As ShowCM = 1) As Long
  3. #Else
  4.   Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteW" (ByVal hWnd As Long, ByVal lpOperation As Long, ByVal lpFile As Long, ByVal lpParameters As Long, Optional ByVal lpDirectory As Long=0, Optional ByVal nShowCmd As ShowCM = 1) As Long
  5. #End If

  6. Public Enum ShowCM
  7.   SW_SHOWNORMAL = 1&
  8.   SW_SHOWMINIMIZED = 2&
  9.   SW_SHOWMAXIMIZED = 3&
  10.   SW_SHOWNOACTIVATE = 4&
  11.   SW_SHOW = 5&
  12.   SW_SHOWMINNOACTIVE = 7&
  13.   SW_SHOWNA = 8&
  14.   SW_SHOWDEFAULT = 10&
  15. End Enum


  16. Public Function ShellOpenFile(ByVal FileName As String, Optional ByVal ShowMode As ShowCM = 1)
  17.   If Len(FileName) Then
  18.     ShellOpenFile = ShellExecute(Application.hWnd, StrPtr("open"), StrPtr(FileName), 0, , ShowMode)
  19.   End If
  20. End Function

  21. Sub Test()
  22.   ShellOpenFile "\\fileserver\PUB\QA\11 SIP\SIP\QCS001-MT1097X.pdf" '可以是其它的文件名,只要系統能夠識別的文件類型,都會自動以Windows默認程式開啟指定的文件。比如指定的是.TXT文件,將會自動以Notepad.exe開啟
  23.   ShellOpenFile "https://www.facebook.com/profile.php?id=100010420125898", SW_SHOWMAXIMIZED  '開啟網頁
  24.   ShellOpenFile "MailTo:[email protected]" '發送Email到指定的郵箱地址
  25. End Sub
複製代碼
世界那麼大,可我想去哪?

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題