web-dev-qa-db-ja.com

VBAを使用してシェルコマンドを実行するにはどうすればよいですか?

Visual Basic for Applicationsを使用して、次のようなシェルコマンドを実行したいと思います。

C:\Temp\gc.exe 1

どうすればいいですか?

12
aF.

例:

 retVal = Shell("C:\Temp\gc.exe 1", vbNormalFocus)

リンク: VBAから呼び出されたシェル

12
Jim Counts

これは、exeファイルを呼び出し、シェルコマンドを使用してそのファイルに引数を渡すシナリオを示しています。次のコードは、引数としてurlを渡すことにより、chrome.exeが存在し、www.google.comを呼び出すフォルダーをチェックします(chromeをインストールしたと仮定します)。

Public Sub Display_Google()
  Dim chromePath As String
  chromePath = "C:\Program Files\Google\Chrome\Application\chrome.exe"

  If FileExists(chromePath) Then
  Shell (chromePath & " -url" & " " & "www.google.com"), vbMaximizedFocus
  Else

  chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
  Shell (chromePath & " -url" & " " & "www.google.com"), vbMaximizedFocus
  End If
End Sub
Public Function FileExists(ByVal FileName As String) As Boolean
    On Error Resume Next
    FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume))
    On Error GoTo 0
End Function
2
rchacko