次の例のような構造のターゲットファイルパスがあります。
C:\Program Files\Test\foobar.exe /G
私がする必要があるのは、vbaのShell()
コマンドを使用してこのファイルを実行できることです。
.exeを実行するときに呼び出す必要がある引数があることをShell()
に伝えるために、ファイルパスをフォーマットする必要があります。
私が読んだ/試してみた(仕様書なし)の結果は右にあります。
file = """C:\Program Files\Test\foobar.exe"" /G" <---Bad file name or number (Error 52)
Shell(file)
file2 = "C:\Program Files\Test\foobar.exe /G" <---file never found
Shell(file2)
Shell()を使用して他の.exeを実行することに成功したので、vbaまたは関数の問題ではないことがわかります。
例:
works = "C:\Program Files\Test\test.exe"
Shell(works)
追加のパラメーターを必要とするファイルの実行に関係するプロセスについてはあまり詳しくないので、話を間違えたり、詳細な情報が必要な場合はお知らせください。
これは私のために働きます(Excel 2013):
Public Sub StartExeWithArgument()
Dim strProgramName As String
Dim strArgument As String
strProgramName = "C:\Program Files\Test\foobar.exe"
strArgument = "/G"
Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus)
End Sub
ここからインスピレーションを得て https://stackoverflow.com/a/3448682 。
VBAでシェルを使用する方法の例を次に示します。
Chromeでstackoverflowを開きます。
Call Shell("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" &
" -url" & " " & "www.stackoverflow.com",vbMaximizedFocus)
テキストファイルを開きます。
Call Shell ("notepad C:\Users\user\Desktop\temp\TEST.txt")
アプリケーションを開きます。
Call Shell("C:\Temp\TestApplication.exe",vbNormalFocus)
お役に立てれば!
以下のコードは、Excelから.exeファイルを自動的に開くのに役立ちます...
Sub Auto_Open()
Dim x As Variant
Dim Path As String
' Set the Path variable equal to the path of your program's installation
Path = "C:\Program Files\GameTop.com\Alien Shooter\game.exe"
x = Shell(Path, vbNormalFocus)
End Sub