VBA 時間指定でマクロを実行するOnTimeメソッド



どうも、takaです(^^♪

VBAで時間を指定してプログラム(マクロ)を実行できたらいいのになぁ・・・

なんて思ったことはありませんか?・・・ないかもしれませんね(笑)

ですが、せっかくある機能なので今回は「時間指定でマクロを実行するOnTimeメソッド」をご紹介していきます(^-^)

Application.OnTimeメソッド

Application.OnTimeメソッドの書式

さて、指定した時間にVBAを実行したい場合には【Applicationオブジェクト】の【OnTimeメソッド】を使用します、OnTimeメソッドの書式は以下の通りです。

というわけで少しわかりにくい部分もありますのでMicrosoftの解説を引用いたしますと

OnTimeEarliestTimeProcedureLatestTimeSchedule )

名前必須 / 省略可能データ型説明
EarliestTime必須バリアント型 (Variant)プロシージャを実行する時刻を指定します。
Procedure必須文字列型 (String)実行するプロシージャ名を指定します。
LatestTime省略可能バリアント型 (Variant)プロシージャを実行できる最終時刻を指定します。たとえば、引数 LatestTime に、引数 EarliestTime で設定した値 + 30 を設定します。引数 EarliestTime に指定した時刻にはほかのプロシージャを実行しているため、Excel は待機、コピー、切り取り、または検索のいずれのモードでもないとします。その場合、Excel は実行中のプロシージャが終了するまで 30 秒間待ちます。30 秒以内に Excel が待機モードにならないとき、指定したプロシージャは実行されません。この引数を省略すると、Excel はプロシージャが実行できるまで待ちます。
Schedule省略可能バリアント型 (Variant)新しい OnTime プロシージャを設定するには、 True を指定します。直前のプロシージャの設定を解除するには、 False を指定します。既定値は True です。

参照:Microsoft

つまり、引数のLatestTimeは、指定時間時に他のプロシージャーを実行中で呼び出したプロシージャーが実行できない場合何秒待ちますか?ということですね!

Application.OnTimeメソッドの使用例

さて、このOnTimeメソッドは実際どのように使用例を考えましたのでご紹介します!

使用例1:時間でお知らせ

1番オーソドックスかもしれませんが、12時になったらメッセージボックスを表示するプログラムです(^-^)

使用例2:秒数指定で実行

inputboxで指定した時間(秒数)後にプロシージャーを実行します。

他にも使い道はいくらでもある

というわけで、OnTimeメソッドをご紹介しましたが他にもいくらでも使い道はあると思うんですよ。

Outlookと連携してメールの時間指定送信だとか、タイマーの代わりだとか、個人的にはメール関係とすごく相性がいいような気がしますので会社のツールにも応用応用しようかと思います(笑)

ファイルやコードの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Twitterフォロー

 

ブログの更新通知を受け取るにはこちらにはこちら↓Twitterもやってます(^^♪Excelについてはあまり触れませんがブログの更新のお知らせはツイートしています(^^♪

Twitterフォロー

 



コメントを残す

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

ABOUTこの記事をかいた人

あることがキッカケでVBAを独学で勉強している、非IT企業の会社員。 今はVBAで出来ることを模索しながら別の開発言語の取得、基本情報技術者試験合格が目標