タスクスケジューラからExcel(VBA)を実行できない時の対処方法

タスクスケジューラのタスクの実行条件として
 ・ユーザーがログオンしているときのみ実行する
 ・ユーザーがログオンしているかどうかにかかわらず実行する
の2種類があります!

タスクスケジューラのタスクの実行条件は2種類ある
タスクスケジューラのタスクの実行条件は2種類ある

デフォルト(初期設定)では
 ・「ユーザーがログオンしているかどうかにかかわらず実行する」にすると
 ・何故かタスクスケジューラからExcel(VBA)が実行されない
です!
※エラーメッセージが表示されるわけでもないため、実行できていないことに気付きにくいです。

この記事では
 ・「ユーザーがログオンしているかどうかにかかわらず実行する」であっても
 ・タスクスケジューラからExcel(VBA)を実行できるようにする
方法を紹介します!

なお
 ・「ユーザーがログオンしているかどうかにかかわらず実行する」にすると
 ・画面が表示されない
ようになります。
※例えばMsgBox関数によるメッセージ出力が表示されなくなります。
※そのため「VBAがちゃんと実行されているかどうかの確認」は、「メッセージ出力」ではなく
 「ファイル出力」等にする必要があります。

PR

手順

「ユーザーがログオンしているかどうかにかかわらず実行する」であってもExcel(VBA)を実行できるようにするために、以下の3つを実施します。

タスクスケジューラからExcel(VBA)を起動できるようにする3つの手順
  • 「タスクの実行時に使うユーザーアカウント」に「管理者権限を持つユーザー」を指定する。

  • 「最上位の特権で実行する」にチェックを入れる

  • 以下のフォルダ配下にフォルダ「Desktop」を作成する。
    Windows(32bit版)の場合:C:\WINDOWS\System32\config\systemprofile\
    Windows(64bit版)の場合:C:\WINDOWS\SysWOW64\config\systemprofile\
「ユーザーがログオンしているかどうかにかかわらず実行する」にしてExcel(VBA)を実行できるようにするための設定
「ユーザーがログオンしているかどうかにかかわらず実行する」にしてExcel(VBA)を実行できるようにするための設定
フォルダ「Desktop」を作成【上記はWindows(64bit版)の場合】
PR

参考①

タスクスケジューラからマクロ(VBA)を実行する方法は、以下の記事をご確認ください。

PR

参考②

VBAを実行するVBScriptを作成して、VBScriptをタスクスケジューラから実行しても良いと思います。

VBScriptからVBAを実行する方法は、以下の記事をご確認ください。

PR

参考③

上記で紹介した手順は、大手ITメディアサイトを参考にしました。