OnTime メソッド
Microsoft Excel Visual Basic のリファレンス |
OnTime メソッド
指定された時刻 (特定の日時、または特定の期間の経過後) にプロシージャを実行します。
expression**.OnTime(EarliestTime**, Procedure, LatestTime, Schedule)
expression 必ず指定します。Application オブジェクトを返すオブジェクト式を指定します。
EarliestTime 必ず指定します。バリアント型 (Variant) の値を使用します。プロシージャを実行する時刻を指定します。
Procedure 必ず指定します。文字列型 (String) の値を使用します。実行するプロシージャ名を指定します。
LatestTime 省略可能です。バリアント型 (Variant) の値を使用します。プロシージャを実行できる最終時刻を指定します。たとえば、引数 LatestTime に、引数 EarliestTime で設定した値 + 30 を設定します。引数 EarliestTime に指定した時刻にはほかのプロシージャを実行しているため、Excel が待機、コピー、切り取り、検索のいずれのモードでもないとします。その場合、Excel は実行中のプロシージャが終了するまで 30 秒間待ちます。30 秒以内に Excel が待機モードにならないとき、指定したプロシージャは実行されません。この引数を省略すると、Excel はプロシージャが実行できるまで待ちます。
Schedule 省略可能です。バリアント型 (Variant) の値を使用します。新しい OnTime プロシージャを設定するには、True を指定します。直前のプロシージャの設定を解除するには、False を指定します。既定値は True です。
解説
現在の時刻から指定した特定の時間が過ぎてから、処理を実行させるときは、Now + TimeValue(time)
を使います。指定した特定の時刻に処理を実行させるときは、TimeValue(time)
を使います。
使用例
次の使用例は、現在から 15 秒後に my_Procedure を実行します。
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
次の使用例は、午後 5 時に my_Procedure を実行します。
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
次の使用例は、前の使用例で設定した OnTime メソッドの設定を取り消します。
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False