Excel VBA(マクロ)で待機する方法/Sleep関数(Windows API)の使い方、使えない時の対処法

sleep IT

Sleep関数は文字通り「スリープ」させる命令で、指定ミリ秒数分の時間Excelをストップさせることができます。
Excelの関数ではなくWindows自体のAPIを使用するので、頭にAPI使う旨宣言する必要があります(要するに決まった文章入れれば動きます)。Macでの使い方はわかったら追記します。

スポンサーリンク

Sleep関数の使い方とAPIの宣言

sleep1
構文そのものはSleep 値(1/1000秒単位)とはなはだシンプルですが、
sleep2
これだけだと「Sleepなどという命令は知らない」というエラーが出ます。
sleep3
SleepはWindows APIの関数なので、使う旨記述する必要があります。
Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)と記述します。
sleep4
今書いたのは32bit版のExcelで使える宣言ですが、もしこういったエラーがさらに出るようなら使ってるExcelは64bit版なので、
sleep5
Declare PtrSafe Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)に修正します。PtrSafeがSubの前に入っただけです。
sleep6
宣言が有効な状態で実行すると、指定時間Excelが停止します。

コメント