バッチでマクロ実行
■マクロの実行をバッチファイルから実行する方法を解説する
■準備するのは下記ファイル
・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!」と入力される