【VBA】Windowsのバッチファイルを実行する

VBAから
 ・Windowsのバッチファイルを実行
できます!

ここでは
 ・Windowsのバッチファイルを
 ・同期実行する方法
を記載します!

VBAコード

ここでは例として、
 ・デスクトップ配下のバッチファイル「test.bat」を実行
します。

test.batの内容
'変数の宣言を必須
Option Explicit

Sub sample()

    Dim batchPath As String
    Dim wsh As Object
    
    'バッチファイルのパスを指定
    batchPath = "C:\Users\user\Desktop\test.bat"
    
    Set wsh = CreateObject("WScript.Shell")
    
    'バッチファイルを同期実行
    Call wsh.Run(batchPath, WaitOnReturn:=True)
    
    '後片付け
    Set wsh = Nothing
    
End Sub

15行目の「WaitOnReturn」に「True」を指定することで、同期実行になります。
※「False(規定値)」を指定すると同期実行になります。

ここでいう「同期実行」とは、「バッチファイルの処理完了後にVBAへ制御が返ってくるように実行」という意味です。
※バッチファイルの処理が完了するまでは、VBAの処理は停止して先に進みません。

実行結果

Windowsのバッチファイルを実行できました。

タイトルとURLをコピーしました