教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA その他操作】処理を一時停止(Application.Wait)するにはどうすればいいの?教えて!

f:id:m_kbou:20210816143330p:plain

処理を一時停止させる方法について紹介します。

 

 

構文

記述方法は以下の通りとなります。

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セルにセットします。

との意味になります。

f:id:m_kbou:20210816143344p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210816143357p:plain

②B1セルに停止開始時間がセットされます。(※今回は<実行>ボタンのクリック時刻が14時12分25秒であったため、B1セルには「14:12:25」がセットされました。)

f:id:m_kbou:20210816143413p:plain

③数分の処理停止があった後、指定した14時15分00秒に処理が再開されました。処理が再開されると同時にB2セルには時間がセットされました。(※今回は14時15分00秒に処理の停止解除を指定をしたため、B2セルには「14:15:00」がセットされました。)

f:id:m_kbou:20210816143424p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

処理再開時刻を固定値で指定する方法についての説明は以上です。

 

処理再開時刻を変数で指定する方法

処理再開時刻を変数で指定する方法について説明します。

[プログラミング例]:

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セルにセットします。

との意味になります。

f:id:m_kbou:20210816143559p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210816143612p:plain

②B1セルに停止開始時間がセットされます。(※今回は<実行>ボタンのクリック時刻が14時24分31秒であったため、B1セルには「14:24:31」がセットされました。)

f:id:m_kbou:20210816143628p:plain

③数分の処理停止あった後、指定した「停止時間+30秒後」に処理が再開されました。処理が再開されると同時にB2セルに時間がセットされました。(※今回は14時24分31秒に処理を停止したため、その30秒後である「14:25:01」がB2セルにセットされました。)

f:id:m_kbou:20210816143638p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

処理再開時刻を変数で指定する方法についての説明は以上です。

 

おわりに

今回は処理を一時停止させる方法について説明しました。類似の内容にSleep関数(WindowsAPI)もあります。こちらも参考にして下さい。