
Excel VBAの処理で、コードの実行を一時停止させる。Sleepの効果的な活用法や実践例を解説していきます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
Excel VBA Sleepの基本的な使用方法
Sleepはファイルの処理や繰り返し処理の際に、一定時間の間隔を空けたい場合に使用します。たとえば、特定の処理後に一定時間待機して次の処理を開始する際に有用です。
たとえば、基幹システムからCSVファイルが吐き出されたのちに、ExcelVBAでCSVをExcelに読み込む際に利用する。
CSVファイルが作成されていたら、そのままExcelに読み込みするが、CSVファイルが未作成の場合は一定時間待って再処理するなどで利用できます。
Excel VBAにSleep関数は標準で備わっていないので、Windows APIを使ってSleepができます。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
Excel VBA Sleepの使用例
#If VBA7 Then ' 64ビット版のExcelの場合
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else ' 32ビット版のExcelの場合
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
Sub ExampleSleep()
' Sleep関数を使って5000ミリ秒(5秒間)待機する例
Sleep 5000
MsgBox "5秒経過しました!"
End Sub
Windows APIのSleepをVBAで呼び出し、5000ミリ秒(5秒間)プログラムの実行を一時停止させ、その後にメッセージボックスを表示します。
Excel VBA Sleepを使うときの留意点
Windows APIは、Windowsのバージョンやビット数(32ビットまたは64ビット)によって動作が異なることがあります。適切なバージョンやビット数に対応した宣言が必要です。
また、Sleepは一時停止中にExcelは応答しません。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!