タスクスケジューラのタスクの実行条件として
・ユーザーがログオンしているときのみ実行する
・ユーザーがログオンしているかどうかにかかわらず実行する
の2種類があります!
デフォルト(初期設定)では
・「ユーザーがログオンしているかどうかにかかわらず実行する」にすると
・何故かタスクスケジューラからExcel(VBA)が実行されない
です!
※エラーメッセージが表示されるわけでもないため、実行できていないことに気付きにくいです。
この記事では
・「ユーザーがログオンしているかどうかにかかわらず実行する」であっても
・タスクスケジューラからExcel(VBA)を実行できるようにする
方法を紹介します!
なお
・「ユーザーがログオンしているかどうかにかかわらず実行する」にすると
・画面が表示されない
ようになります。
※例えばMsgBox関数によるメッセージ出力が表示されなくなります。
※そのため「VBAがちゃんと実行されているかどうかの確認」は、「メッセージ出力」ではなく
「ファイル出力」等にする必要があります。
手順
「ユーザーがログオンしているかどうかにかかわらず実行する」であってもExcel(VBA)を実行できるようにするために、以下の3つを実施します。
参考①
タスクスケジューラからマクロ(VBA)を実行する方法は、以下の記事をご確認ください。
参考②
VBAを実行するVBScriptを作成して、VBScriptをタスクスケジューラから実行しても良いと思います。
VBScriptからVBAを実行する方法は、以下の記事をご確認ください。
参考③
上記で紹介した手順は、大手ITメディアサイトを参考にしました。