エクセルマクロ(VBA)をコマンドラインから呼び出す

自働化を検討していると手順の途中でExcelMacroを起動したくなることがあります。
そんなときはこんな感じでVBScriptからComオブジェクト経由で呼び出してあげる

ExcelMacroKicker.vbs

Set objArgs = Wscript.Arguments
runXLmacro objArgs(0), objArgs(1)

Function runXLmacro(BookName, MacroName)
    Dim XL
    Set XL = CreateObject("Excel.Application")
    XL.Visible = False
    XL.Workbooks.Open BookName
    XL.Run MacroName
    XL.ActiveWorkbook.Close False
    XL.Quit
    Set XL = Nothing
End Function
広告を非表示にする