

ExcelのVBAで、処理を一時停止する、
Sleep関数やWaitメソッドをご紹介します。
目次
マクロ機能が有効なExcelブック「.xlsm」を作成
Excelブック「.xlsm」の作成方法が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】マクロ機能が有効なExcelブック「.xlsm」の作り方
コードを標準モジュールに貼り付け
標準モジュールの開き方が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】標準モジュールの開き方
標準モジュールを開いて、下記のコードを貼り付けて下さい。
コード
Sleep関数
Sleep関数はWindows APIです。
処理停止時間をミリ秒(1秒の1000分の1)単位で指定可能です。
Microsoft Officeが32ビットバージョンの場合は
モジュールの最初に、下記を記載して下さい。
※「mlsc」は変数なので、任意の文字列に変更して構いません。
| 
					 1  | 
						Private Declare Sub Sleep Lib "kernel32" (ByVal mlsc As Long)  | 
					
32ビットバージョンのサンプルコードは下記です。
| 
					 1 2 3 4 5 6 7 8 9 10  | 
						Private Declare Sub Sleep Lib "kernel32" (ByVal mlsc As Long) Sub Sample1()     Dim time As Long     time = 1000     Sleep time     MsgBox time & "ミリ秒停止しました" End Sub  | 
					
Microsoft Officeが64ビットバージョンの場合は
モジュールの最初に、下記を記載して下さい。
※「mlsc」は変数なので、任意の文字列に変更して構いません。
32ビットバージョンと比較すると、「PtrSafe」部分を追記しています。
| 
					 1  | 
						Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal mlsc As Long)  | 
					
64ビットバージョンのサンプルコードは下記です。
| 
					 1 2 3 4 5 6 7 8 9 10  | 
						Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal mlsc As Long) Sub Sample1()     Dim time As Long     time = 1000     Sleep time     MsgBox time & "ミリ秒停止しました" End Sub  | 
					
Waitメソッド
Waitメソッドは、引数で指定する時刻まで処理停止可能です。
Now関数で現在時刻を取得して、
TimeValue関数で値を加算した指定時刻まで処理を停止します。
現在時刻から1秒後まで処理停止する場合は、下記の様に記載します。
※「(“00:00:01”)」の数値を変更することで処理停止時刻を指定します。
| 
					 1  | 
						Application.Wait Now() + TimeValue("00:00:01")  | 
					
サンプルコードは下記です。
| 
					 1 2 3 4 5 6 7 8  | 
						Sub Sample2()     Dim time     time = TimeValue("00:00:01")     Application.Wait Now() + time     MsgBox time & "秒停止しました" End Sub  | 
					
Waitメソッド(ミリ秒単位で指定)
また、Sleep関数と同様に、処理停止時刻をミリ秒単位で指定する場合は、
下記の様に記載します。
※「1000」の数値を変更することで処理停止時刻を指定します。
| 
					 1  | 
						Application.Wait [Now()] + 1000 / 86400000  | 
					
※「86400000」は、1日をミリ秒に換算した値です。
1秒=1,000ミリ秒
1日=60秒×60分×24時間=86,400秒
86,400秒=86,400,000ミリ秒
サンプルコードは下記です。
| 
					 1 2 3 4 5 6 7 8  | 
						Sub Sample3()     Dim time As Long     time = 1000     Application.Wait [Now()] + time / 86400000     MsgBox time & "ミリ秒停止しました" End Sub  | 
					
マクロを実行
上記で作成したマクロファイル(ここでは「処理を一時停止するVBA.xlsm」とファイル名を設定。)を準備します。

マクロファイルを開いて、「コンテンツの有効化」をクリックします。
※設定により、「コンテンツの有効化」は表示されない(クリック不要の)場合もあります。

「開発」タブをクリックします。

「マクロ」をクリックします。

マクロ「Sample1~3」のいずれかを選択、「実行」をクリックします。

実行結果:Sleep関数
「1000ミリ秒停止しました」と表示されます。

実行結果:Waitメソッド
「0:00:01秒停止しました」と表示されます。

実行結果:Waitメソッド(ミリ秒単位で指定)
「1000ミリ秒停止しました」と表示されます。

完了です。
参考サイト
Microsoft
Office 2010 の 32 ビット バージョンと 64 ビット バージョンとの互換性
https://docs.microsoft.com/ja-jp/previous-versions/office/ee691831(v=office.14)?redirectedfrom=MSDN