VBScriptで指定した時刻になったらExcelマクロを自動実行する方法

VBScriptで指定した時刻になったらExcelマクロを自動実行する方法を紹介します。

VBScriptで指定Excelブックを開きマクロを実行する方法




指定した時刻になったらマクロを自動実行するケース

定期的にマクロを実行するケースとしては例えばニュース情報を取得したり、為替レートを取得したり、日報を収集したりいわゆる情報収集系や、それを大本の台帳へ反映させたりする更新系などの作業が考えられます。

またマクロ実行するケースとしてはシステム化から外れた小規模な仕組みである場合が多く、ほとんどが担当する人の手で実行がされるケースがほとんどであると思います。

そのような作業は担当者の都合により実施タイミングが左右されるため、例えば会議などで手がつけられない事が生じる場合があるかと思います。

今回紹介しますスケジューリングによるマクロの実行は人の都合に関係なくPC上で自動実行されるため、そのような忙しい方にうってつけです。

なお、Excel上において指定した時刻にマクロを実行する一般的な方法は、ApplicationオブジェクトのOnTimeメソッドを使いますが、Excelを常時起動していなければならないため、今回はその方法を使用していません。

代わりにWindows OSの標準機能である「タスクスケジューラ」という定例の作業を自動化できるジョブ管理機能を利用して実現しています。

マクロ実行のサンプルは「【Desktop VBS】VBScriptで指定Excelブックを開きマクロを実行する方法」で紹介しましたwikiサイトのデータ取得マクロを利用します。



早速設定方法からご説明します。

設定方法

①タスクスケジューラの設定画面を開きます。
タスクスケジューラの設定画面を開くには、スタートメニューの検索窓に「タスクスケジューラ」と入力して出た「タスク スケジューラ」を選択します。

もしくは、コントロールパネルの[管理ツール]>[タスク スケジューラ]を選択します。

②マクロ実行用のタスクを作成します。
左メニューから[タスク スケジューラ ライブラリ]フォルダを選択してから、右側の操作ペインで[基本タスクの作成…]をクリックします。

③タスクの名前を任意の値で入力し「次へ」をクリックします。

④実行スケジュール入力し「次へ」をクリックします。
今回は2019年7月1日の12時から毎日同時刻に開始する内容となります。

⑥実行するプログラムのパス入力し「次へ」をクリックします。
今回は「【Desktop VBS】VBScriptで指定Excelブックを開きマクロを実行する方法」で紹介しましたVBSファイルを指定しています。

⑦入力した内容を確認し「完了」をクリックしたら設定完了です。

完了後は真ん中のペインに設定したタスクが表示されます。



タスクを実行しましょう

設定したタスクは設定したスケジュールで実行されますが、その前にきちんと稼働するか手動で実行してみます。

真ん中に表示されている設定したタスク名を右クリックし「実行する」をクリックします。

はい、Excelが起動されました。
マクロが実行されるとB列に値が入ります。


しばらくすると・・・

Wiki情報を収集した結果がB列に反映されましたね!
マクロも動いたということです!
あとは開始タイミングを待つだけです。

さいごに

いかがでしょうか。
タスクスケジューラとVBSを使うとExcelのマクロの定期実行ができることがわかったかと思います。

なお、完全に自動化するためには保存したり、警告メッセージを出ないようにしたり、バックグラウンド実行にしたりもう少し工夫が必要となりますので、まずは簡単なマクロから試していただければと思います。

今後もいろいろな使い方をご紹介していきたいと思いますのでご期待ください。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です