前提
「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)
'後片付け
Set wsh = Nothing
End Sub