マクロを作ったはいいものの、毎回ポチポチ起動するのが面倒だし、起動を忘れて更新が停まっちゃうみたいなことありませんか。
今回は、決まった時間にマクロを起動する方法をご紹介します。
Ontimeメソッドは難しかったので採用しませんでした。
windowsの”タスクスケジューラー”で決まった時間に起動する方法を達成します。
今回使用する物は4つです。
- マクロ
- vbsファイル(マクロを起動するファイル)
- batファイル(vbsを起動するファイル)
- タスクスケジューラー(batを起動する)
私は以下の場面でマクロの自動起動を使用しています。
- 定型メールの発信
- 日中に更新される情報を使用したファイル作成(売上とか)
マクロの自動起動を活用をできれば、涼しい顔で仕事を終わらすことができて、定時で帰れちゃいます。
では、早速説明していきます。
目次
vbsファイル?batファイル?何それ?
マクロを自動で起動するにあたり、vbaファイルとbatファイルが必要になります。
私は本職ではないので正直、このファイルたちがどういったものか詳しいことは知らないです。
ただ、これらのファイルについてはざくっとこんな認識で大丈夫です。
- vbsファイル ⇒ マクロを起動するファイル
- batファイル ⇒ vbsを起動するファイル
これだけ見ると、batファイル必要なくねって思われるかもしれませんが、後で説明するwindowsのタスクスケジューラーを使う場合、vbsをタスクスケジューラに読ませるより、batファイルを読ませる方が安定するらしいです。
もちろん、vbsファイル直接読み込ませるでも動きます。
ただ、batファイルは一文だけで作成できますので、作っておいて損はないです。
では具体的にvbaファイルとbatファイルの作成方法を説明していきます。全然難しくないので安心してください。
今回は、Dドライブ直下にtestフォルダを作成して、その中に諸々突っ込んでいるイメージです。
vbsファイルの作成
テキストエディタに以下の内容を記載して、拡張子を.vbsに変更して保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Dim objXLS Set objXLS= WScript.CreateObject("Excel.Application") objXLS.Visible = True ' '*------------------------------------------------------------------ objXLS.Workbooks.Open("D:\test\test1.xlsm")’ファイルの場所 objXLS.Application.Run "Module1.macro" ’起動するモジュール名とマクロの名前 '*------------------------------------------------------------------ objXLS.Application.Quit Set obj = Nothing |
’*—-で囲まれた部分を、それぞれ変更すれば完成です。
モジュール名とマクロの名前は下を参考にしてください。

batファイルの作成方法
batファイルもvbsファイル同様、テキストエディタに以下の内容を記載して、拡張子を.batで保存でOK!
1 2 3 |
echo off cscript D:\test\test.vbs |
vbsファイルの場所を指定しているだけですね。
vbsファイルとbatファイルが作成出来たら、それぞれダブルクリックして、マクロが起動するか確認してください。
編集をしたい場合は右クリックの編集から行きましょう。
タスクスケジューラーを使用してマクロを自動起動

タスクスケジューラーの場所ですが、左下のwindowsマークからwindows管理ツール→タスクスケジューラーにあります。
タスクスケジューラーが起動したら、上にある操作(A)ボタンを押して、タスクの作成を選択します。

次に、トリガータブを選択して、自動起動する間隔や時間を決めます。

今回は、毎日お昼休み(12:30)に起動すると想定しています。
最後に、起動するbatファイルの場所を指定してあげます。

これで、マクロの自動起動の作成は完了です。
自動起動の注意とオススメ運用
今回作成したタスクスケジューラーを使用したマクロの自動起動ですが、残念ながらパソコンの電源を切っていると起動しません。
なので、オススメの運用方法としては会社に頼んで1台電源を切らないパソコンを支給してもらうのです。
私は、自分が普段使っているパソコンの他に1台デスクトップのパソコンを支給してもらって(厳密に言えば余っていたのを使用して)、そのパソコンは電源つけっぱにしています。
で、その支給されたパソコンで今回作成したタスクスケジューラーを設定するのです。
そうすれば、いつでもマクロが自動で走ってくれます。こうすることにより、結構いろんな業務が自動で完了するようになりました。
なので、マクロを作るだけではなくて、自動で起動できるところまで進められるとより業務の効率があがりますよ。