Windows API の Sleepとは、指定した時間だけ処理を停止させたい場合に使用します。CPUに負荷はかかりません。

Windows API Sleepとは

■ Sleepの宣言
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

■ Sleepの構文
Call Sleep( ミリ秒 )

Sleep使用例画面
Excel VBA 入力画面

入力したVBAコードです。
MySleepプロシージャはミリ秒単位で停止します。
MySleepSecプロシージャは秒単位で停止します。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub MySleep()
    Dim tim As Long
    
    tim = Range("C3")
    Range("E3") = "開始"
    Call Sleep(tim)
    Beep
    Range("E3") = "停止"
End Sub

Sub MySleepSec()
    Dim tim As Long
    
    tim = Range("C4") * 1000
    Range("E4") = "開始"
    Call Sleep(tim)
    Beep
    Range("E4") = "停止"
End Sub

VBAプログラムの説明


Windows API Sleepを宣言
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Subプロシージャの宣言
Sub MySleep()
長整数型の変数を宣言
Dim tim As Long
待ち時間 ミリ秒をC3セルより取得
tim = Range("C3")
E3セルに入力
Range("E3") = "開始"
Windows API Sleepを実行
Call Sleep(tim)
ブザーを鳴らす
Beep
E3セルに入力
Range("E3") = "停止"
プロシージャの終了
End Sub
Subプロシージャの宣言
Sub MySleepSec()
長整数型の変数を宣言
Dim tim As Long
待ち時間 秒をC4セルより取得
tim = Range("C4") * 1000
E4セルに入力
Range("E4") = "開始"
Windows API Sleepを実行
Call Sleep(tim)
ブザーを鳴らす
Beep
E4セルに入力
Range("E4") = "停止"
プロシージャの終了
End Sub

Windows API Sleepの使用例マクロの実行画面

マクロ一覧から「MySleep」か「MySleepSec」マクロを実行します。
マクロ ダイアログボックス

マクロ実行前に、C3セルに待ち時間をミリ秒で、C4セルに秒で入力しておきます。
マクロを開始すると、「開始」と表示されます。
Sleepの開始

待ち時間が経過すると、「停止」と表示されます。
Sleepの停止

Excelマクロのサンプルファイル:フリーダウンロード








Copyright (C) excel.usefulhp.com All rights reserved.