web-dev-qa-db-ja.com

Excel VBAから.bat Windowsバッチファイルを実行する

Excelファイルがある現在のディレクトリ内にnewcurl.batというファイルがあります。

ExcelVBAでこのファイルを実行したい

私は試した:

Shell "cmd.exe /k ""cd " & """ & ThisWorkbook.path & """ & " newcurl.bat"""

現在のフォルダーパスへのCDのみですが、newcurl.batファイルを物理的に実行しません

3
Vincent Tang

私はそれを理解することになりました。

私はpersonal.xlsbマクロブックを持っていたので、thisworkbook.pathは間違ったワークブックを参照していました。

代わりにこれをやった:

Dim folderPath As String
Dim shellCommand As String

folderPath = Application.ActiveWorkbook.Path
shellCommand = """" & folderPath & "\" & "newcurl.bat" & """"
Call Shell(shellCommand, vbNormalFocus)
2
Vincent Tang

二重引用符を間違えました-ThisWorkbook.pathはコマンド内で文字どおりに使用されます。

コマンドをコンソールに出力すると、自分で確認できます。

Dim strCommand As String
strCommand = "cmd.exe /k ""cd " & """ & ThisWorkbook.path & """ & " newcurl.bat"""
Debug.Print strCommand
Shell strCommand
0
Leviathan