添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

【VBA】Sleep関数・Waitメソッドの使い方 |VBAで処理を一時停止する方法を解説します

#If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as Long) 'For 32 Bit Systems #End If Sub SleepTest1() MsgBox "実行開始" Sleep 30000 '停止させる秒数(ミリ秒) MsgBox "実行再開" End Sub

Sleep関数はWindowsの関数なので、使用する前にモジュール内のコードの上にAPIの名前を宣言する必要があります。操作環境が64ビットなのか32ビットなのかで関数の宣言の仕方が変わります。IF文によって操作環境が64ビット・32ビットのどちらでもSleep関数が使えるようにしています。

例 2: InputBoxを使用して、ユーザー定義の時間だけコードを遅延させる

ユーザーがメッセージボックス内で入力した秒数だけ、コードの実行を遅延させることができます。

Sub SleepTest2()
On Error GoTo InvalidRes
Dim i As Integer
i = InputBox("コードを一時停止する秒数を入力してください。")  'InputBoxで停止したい秒数を入力
Sleep i * 1000 '秒をミリ秒に
MsgBox (i & " 秒停止")
Exit Sub
InvalidRes:  'エラー発生時はメッセージボックスでInvalid valueと表示
MsgBox "Invalid value"
End Sub

実行すると・・・