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

前提

「Windows Script Host Object Model」を参照設定しなくとも動作するよう、CreateObject関数を使用して必要なオブジェクトを取得する
※他のPC上で実行する際、参照設定が原因で上手く動作しないことがあるため

サンプルプログラムの概要

実行中のExcelファイルと同じフォルダにあるバッチファイルを実行する

サンプルプログラム

'変数の宣言を必須
Option Explicit

Sub batExeSample()

    Dim bookPath As String
    Dim batchPath As String
    Dim wsh As Object
    
    '実行中のExcelファイルのパスを取得
    bookPath = ThisWorkbook.Path
    
    '実行するバッチファイルのパスを取得
    batchPath = bookPath + "\test.bat"
    
    'バッチファイルを同期実行(処理完了後に制御が返ってくる)
    Set wsh = CreateObject("WScript.Shell")
    Call wsh.Run(batchPath, WaitOnReturn:=True)
    
End Sub
タイトルとURLをコピーしました