制御 指定時間経過後又は定刻にプロシージャを実行する
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
'=============================================== '指定時間経過後又は定刻にプロシージャを実行する '=============================================== Dim PublicSetTime As Date Sub OnTimeSample1() '*********************************************** '現在から~秒後にプロシージャを実行する '*********************************************** Dim SetTime As Date SetTime = "00:00:05" Application.OnTime Now + TimeValue(SetTime), "OnTimeTestSub" End Sub Sub OnTimeSample2() '*********************************************** '~時にプロシージャを実行する '*********************************************** Dim SetTime As Date SetTime = "09:30:00" PublicSetTime = SetTime 'OnTimeSample3用 Application.OnTime TimeValue(SetTime), "OnTimeTestSub" End Sub Sub OnTimeSample3() '*********************************************** 'OnTimeメソッドの設定を取り消す '*********************************************** 'OnTimeSample2を取り消す Application.OnTime EarliestTime:=TimeValue(PublicSetTime), _ Procedure:="OnTimeTestSub", Schedule:=False '※① End Sub Sub OnTimeTestSub() MsgBox "実行しました!" End Sub 'OnTime メソッドの使用例(ヘルプ抜粋) '--------------------------------------------------------------------------------- 'OnTimeメソッド '--------------------------------------------------------------------------------- '指定された時刻 (特定の日時、または特定の期間の経過後) にプロシージャを実行します。 '構文 '--------------------------------------------------------------------------------- 'オブ.OnTime(EarliestTime, Procedure, LatestTime, Schedule) ' 'オブ 省略不 対象オブジェクト式指定 'EarliestTime 省略不 実行時刻指定 'Procedure 省略不 実行プロシージャ名指定 'LatestTime 省略可 プロシージャを実行できる最終時刻を指定 'Schedule 省略可 新しいOnTimeプロシージャを設定 '--------------------------------------------------------------------------------- '補足 LatestTime 'EarliestTimeで設定した値 + 30 を設定します。 'EarliestTimeに指定した時刻には他のプロシージャを実行しているため、 'Excelが待機/コピー/切り取り/検索のいずれのモードでもないとします。 'その場合Excelは実行中のプロシージャが終了するまで30秒間待ちます。 '30秒以内にExcelが待機 モードにならないとき指定したプロシージャは実行されません。 'この引数を省略すると、Excel はプロシージャが実行できるまで待ちます。 '--------------------------------------------------------------------------------- '補足 Schedule ※① '新しいOnTimeプロシージャを設定するには、True を指定 '直前のプロシージャの設定を解除するには、False を指定 |