エクセルマクロをタスクスケジューラで起動する

エクセルマクロをwindowsに標準搭載されているタスクスケジューラで動かす方法です。
単純にエクセルマクロのフルパスを指定してタスクを作成しても動かない(2021/09時点)ので、一工夫いれます

VBSを準備する

まずはエクセルマクロを起動するVBSを準備します。とはいっても何も難しいことはなく、メモ帳のアプリで記述して、拡張子をVBSにするだけです。

Const WB_PATH = "C:\Users\Desktop\エクセルA.xlsm" 'エクセルマクロのフルパス
Const PROC_NAME = "macro1" 'マクロの名前
Dim excelApp
Set excelApp = CreateObject("Excel.Application")

With excelApp
	.Visible = False
	Dim wb
	Set wb = .Workbooks.Open(WB_PATH)
	.Run wb.Name & "!" & PROC_NAME
	.DisplayAlerts = False
	wb.Save
	wb.Close
End With

excelApp.Quit

マクロのフルパスと、マクロ名だけ書き換えればあらゆる転用が可能です。たまに上手く動かないことがあるので、その時はマクロの名前を書き換えてリトライしてみてください。
ちなみに、これを作成しておけば、あとはダブルクリックするだけでエクセルマクロが裏で起動します。これだけでも便利ですね。

タスクスケジューラに登録する

あとはこのVBSをタスクスケジューラに登録すれば完了です。
タスクスケジューラの細かい使い方は省略するとして、操作タブの↓項目に参照から作成したVBSを指定するだけです。

画像1

あとは時間が到来すれば、自動でエクセルマクロが起動します。
私の場合は、起動しっぱなしのPCにこの類のVBSを大量に仕込み、夜間で起動させています。
朝出社した時点で既に仕事が数件終わっている状態です。
その他、業務時間中に稼働させているものも数件あるので、仕事の捗り具合が半端ないです。
エクセルマクロはある程度書けるよ!という方にはぜひご利用頂きたい小技です。

次回は、すごくニッチなテーマにしようかと思っています

この記事が気に入ったらサポートをしてみませんか?