処理を一時停止させる方法について紹介します。
構文
記述方法は以下の通りとなります。
Application.Wait ”[処理を再開する時刻]”
[説明]:
処理を一時停止させるには
「Application.Wait ”[処理を再開する時刻]”」
と記述します。
[処理を再開する時刻] | 停止した処理を再開させる時刻を記述します。 ※「”」(ダブルクォーテーション)で囲みます。 |
[記述例]:
Application.Wait "14:15:00"
Application.Wait Now + TimeValue("0:00:30")
使い方
使い方について具体的に説明します。
処理再開時刻を固定値で指定する方法
処理再開時刻を固定値で指定する方法について説明します。
[プログラミング例]:
Sub サンプル()
'↓処理①
Range("B1") = Format(Now, "hh:mm:ss")
'↓処理②
Application.Wait "14:15:00"
'↓処理③
Range("B2") = Format(Now, "hh:mm:ss")
End Sub
内容は、
[処理①]:B1セルに現在の時刻をセットします。
[処理②]:14時15分00秒になるまで処理を停止します。
[処理③]:[処理②]停止後の時刻をB2セルにセットします。
との意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②B1セルに停止開始時間がセットされます。(※今回は<実行>ボタンのクリック時刻が14時12分25秒であったため、B1セルには「14:12:25」がセットされました。)
③数分の処理停止があった後、指定した14時15分00秒に処理が再開されました。処理が再開されると同時にB2セルには時間がセットされました。(※今回は14時15分00秒に処理の停止解除を指定をしたため、B2セルには「14:15:00」がセットされました。)
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
処理再開時刻を固定値で指定する方法についての説明は以上です。
処理再開時刻を変数で指定する方法
処理再開時刻を変数で指定する方法について説明します。
[プログラミング例]:
Sub サンプル()
'↓処理①
Range("B1") = Format(Now, "hh:mm:ss")
'↓処理②
Application.Wait Now + TimeValue("0:00:30")
'↓処理③
Range("B2") = Format(Now, "hh:mm:ss")
End Sub
内容は、
[処理①]:B1セルに現在の時刻をセットします。
[処理②]:現在の刻から30秒後まで処理を停止します。
(※TimeValue関数の使い方はこちらを参考にして下さい。)
[処理③]:[処理②]停止後の時刻をB2セルにセットします。
との意味になります。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②B1セルに停止開始時間がセットされます。(※今回は<実行>ボタンのクリック時刻が14時24分31秒であったため、B1セルには「14:24:31」がセットされました。)
③数分の処理停止あった後、指定した「停止時間+30秒後」に処理が再開されました。処理が再開されると同時にB2セルに時間がセットされました。(※今回は14時24分31秒に処理を停止したため、その30秒後である「14:25:01」がB2セルにセットされました。)
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
処理再開時刻を変数で指定する方法についての説明は以上です。
おわりに
今回は処理を一時停止させる方法について説明しました。類似の内容にSleep関数(WindowsAPI)もあります。こちらも参考にして下さい。