はじめに
Excelファイル内にあるマクロを実行するためには、Excelを一度手動で開かないといけません。定期的に実行するようなExcelマクロがあった場合、毎回Excelを開いて、マクロを実行するのは面倒です。
そこで、コマンドラインからExcelマクロを実行することができないかを調べてみました。
Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応
posted with amazlet at 14.03.15
田中 亨
翔泳社
売り上げランキング: 8,933
翔泳社
売り上げランキング: 8,933
コマンドラインからExcelマクロを実行する
1.以下のソースを「execMacro.vbs」という名前で保存します。
Dim excelApp : Set excelApp = CreateObject("Excel.Application") ' Excelを非表示にする excelApp.Visible = False Dim targetFile : targetFile = WScript.Arguments(0) Dim targetMacro : targetMacro = WScript.Arguments(1) ' Excelファイルを開く excelApp.Workbooks.Open targetFile ' マクロの実行 excelApp.Run targetMacro ' Excelの終了 excelApp.Quit
2.execMacro.vbsを以下のような形式で呼び出します。
cscript execMacro.vbs "Excelファイルのフルパス" "実行するマクロ名"
これでコマンドラインからExcelマクロを実行することができます。
ダイアログを表示するマクロに注意
マクロ内でMsgBox関数などを使っている場合は、マクロ実行時にダイアログが表示されてしまいます。
ダイアログを手動で閉じるまではExcelが動いている状態なので、ダイアログが表示されたら手動で閉じてください。
関連記事