【EXCEL VBA | イミディエイトウィンドウ】作ったプログラムを指定した時間に実行させよう!

スポンサーリンク

作ったプログラムを指定した時間に実行させよう!

イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログラムの開発環境のエディター/Visual Basic Editor)で使用することができる機能で、主にコードの実行結果を試すなど、デバッグする時に使うものです。

イミディエイトウィンドウにVBAコードを書いて、一気に処理する方法を説明しています!

今回は、「作ったプログラムを指定した時間に実行させる」方法です。

↓イミディエイトウィンドウの立ち上げ方などはこちら

【EXCEL VBA】イミディエイトウィンドウを使う
イミディエイトウィンドウとは イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログラムの開発環続きを読む

使い方

前提:時間になったら実行させたいプログラムが用意されていて、指定した時間にプログラムを実行させる(プログラム書いたファイルが開いてる必要があります)

コード

ちゃんとしたコード

Application.OnTime EarliestTime:=#3:00:00 PM#, Procedure:="Macro1"

省略コード

application.ontime #15:00#, "macro1"

【サンプル】

起動させるプログラム

Sub AlertMessage_OYATSU():
    MsgBox "おやつの時間だよ!"
End Sub

単純に、「おやつの時間だよ!」というメッセージをメッセージボックスに表示させるプログラムです。

※このプログラムに関してはイミディエイトウィンドウではなく、標準モジュールのコードエディターに記載しています。

実行すると、次のようになります。

「おやつの時間だよ!」とメッセージボックが表示されました。

それでは、このプログラムを、15時に実行するようにしてみましょう。

「Alt + F11」でVBEを開きます。イミディエイトウィンドウに次のコードを入力して「Enter」で実行して下さい。

application.ontime #15:00#, "AlertMessage_OYATSU"

これで、設定した時間に、指定したプログラムが起動します。

実行動画

※動画は、起動確認の為、実際に作業していた15時4分に設定しています。

※42秒くらいの時に実行されます。

まぁ、これではよく分かりませんが指定した時間に勝手に動いています(笑)

注意

このコード、解除するときは、

application.ontime #15:00#, "AlertMessage_OYATSU", ,False

このように、4番目の引数に「False」を指定して実行します。

このとき、第1引数に入れた時刻を忘れてしまうと解除出来なくなってしまうので注意してくださいね。(色々調べてみましたが、設定したものを確認するようなコードはなさそうです。。。)

まとめ

EXCELに集中してると、思ったよりも時間が過ぎてるときってありますよね。作業前にちょろっと設定しといたら、よても教えてもらえます^_^

オススメの本

VBAはこの本きっかけだったな~