VBAで外部プログラムを起動するには【Shell()】でOK。

しかし、こいつは非同期だから使い勝手が悪い。


そんなときは、Wscript.Shell.Runを使えば同期できる。

VBEで「ツール」→「参照設定」→「Windows Script Host Object Model」にチェックをして、下みたいな感じで。

Dim myWsh As IWshRuntimeLibrary.WshShell
Set myWsh = CreateObject("Wscript.Shell")

' 圧縮batchの呼び出し
myWsh.Run("aaa.bat", 0, True)

第1引数 : プログラム名

第2引数 : 表示、非表示(1,0)

第3引数 : 同期、非同期(True,False)