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を多用し、手動作業を減らしたいと考えている方には価値あるものです。

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


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

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

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。

 

ExcelVBAの学習方法で効果的な学び方を知りたい方は、下記「Excel VBA初心者のための効果的な学習ガイド」をご確認ください。