Excel VBAの効果的な待機制御Sleepの活用法と実例

 

Excel VBAの処理で、コードの実行を一時停止させる。Sleepの効果的な活用法や実践例を解説していきます。

 

Excel VBA Sleepの基本的な使用方法

Sleepはファイルの処理や繰り返し処理の際に、一定時間の間隔を空けたい場合に使用します。たとえば、特定の処理後に一定時間待機して次の処理を開始する際に有用です。

たとえば、基幹システムからCSVファイルが吐き出されたのちに、ExcelVBAでCSVをExcelに読み込む際に利用する。

CSVファイルが作成されていたら、そのままExcelに読み込みするが、CSVファイルが未作成の場合は一定時間待って再処理するなどで利用できます。

 

Excel VBAにSleep関数は標準で備わっていないので、Windows APIを使ってSleepができます。

 

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のスキルを証明できるようにしませんか? Excel VBA エキスパート資格は、VBAプログラミングの専門家としての信頼性を高めキャリアの成長に大きく貢献し、求人市場での競争力を高め、キャリア機会を拡大します。

 

当サイトでは、Excel VBAエキスパート認定資格取得に役立つ情報を提供しています。まずは問題集から挑戦してみませんか?

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。