【VBA】VBScriptファイルを同期実行する

ここではVBAから
 ・VBScriptファイルを
 ・同期実行する
方法を記載します!

VBScriptファイルの実行結果も
取得できます!
※正常終了の場合、実行結果は「0」になります。
※異常終了の場合、実行結果は「1」になります。

PR

VBScriptのコード

ここでは例として、
 ・「VBScriptからのメッセージ出力です!」というメッセージを出力する
 ・「test.vbs」を作成
します。

MsgBox("VBScriptからのメッセージ出力です!")
VBScriptファイル
VBScriptファイル
PR

VBAのコード

ここでは例として、
 ・上記で作成したVBScriptのファイル「test.vbs」を
 ・同期実行
します。
※ここでは作成したVBScriptのファイル「test.vbs」をデスクトップ配下に配置しています。

'変数の宣言を必須
Option Explicit

Sub execBatch()

    Dim vbsFile As String
    Dim wsh As Object
    Dim result As Integer
    
    'VBScriptファイルのパスを指定
    vbsFile = "C:\Users\user\Desktop\test.vbs"
    
    Set wsh = CreateObject("WScript.Shell")
    
    'VBScriptファイルを同期実行
    result = wsh.Run(command:=vbsFile, WaitOnReturn:=True)
    
    If (result = 0) Then
        MsgBox ("VBScriptファイルは正常終了しました。")
    Else
        MsgBox ("VBScriptファイルは異常終了しました。")
    End If
    
    '後片付け
    Set wsh = Nothing
    
End Sub

「VBScriptファイルのパス」を指定します(11行目)。

Run」メソッドの引数「WaitOnReturn」に「True」を指定することで、同期実行になります(16行目)。
※「False(規定値)」を指定すると同期実行になります。

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

VBScriptファイルが正常終了した場合、「戻り値(実行結果)」として「0」が返されます(16~22行目)。
※異常終了の場合は「1」が返されます。

PR

実行結果

VBScriptファイルを同期実行できました。

実行結果
実行結果①
実行結果②
実行結果②
PR

参考①

VBAでバッチファイルを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

VBAでコマンドプロンプトのコマンドを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考③

VBAでPowerShellファイルを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

逆に、VBScriptからVBAを実行することもできます。

詳細は以下の記事をご確認ください。

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