プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

バッチでマクロ実行

■マクロの実行をバッチファイルから実行する方法を解説する

 

■準備するのは下記ファイル

・action.vbs
・target.xlsm(マクロ名:runMacro)
・runMacro.bat
 
①action.vbsに下記を記述

//Excel操作を可能にする為のオブジェクトを作成
Dim obj
Set obj = WScript.CreateObject("Excel.Application")

//Excel処理を画面非表示
obj.Visible = false

//バッチファイルでこのファイルを実行する際の引数設定
//第一引数:指定したExcelマクロを開く
obj.Workbooks.Open WScript.Arguments(0)
//第二引数:指定したマクロを実行
obj.Application.Run WScript.Arguments(1)

 
 


②target.xlsmのマクロ処理に下記を記述

Sub runMacro()

    Range("A1").Value = "Hello World!"

    ThisWorkbook.Save
    Application.Quit

End Sub

 
 


③runMacro.batに下記を記述

//実行するコマンドを非表示
@echo off

//VBScriptを実行(第一引数:マクロファイルのフルパス 第二引数:マクロ名)
//カレントディレクトリ:%~dp0
action.vbs %~dp0\target.xlsm runMacro

 
 


④runMacro.batを実行
target.xlsmのA1セルに「Hello World!」と入力される