VBA【Sleep関数(API)】指定した時間分処理を止める

ロゴ



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうもtakaです、VBAの処理を一定時間止めたいと感じたときはありませんか?

基本的にVBAで処理を一時停止することはできません、ですがAPIのSleep関数を使用すればそれが可能になります(^^♪

※Waitメソッドは除くWaitメソッドについてはこちら【VBA【Waitメソッド】指定した時間処理を止める
※APIについてはこちら

VBAのsleep関数とは?

Sleep関数は処理を止める時間をミリ秒(1秒の1000分の1)単位で指定することで処理を停止させることができる関数です^_^

このSleep関数は今までご紹介してきた関数とは違いAPI(Application Programming Interface)というExcelなどのアプリケーションを介してOSなどを操作することができるインターフェイスになります。

APIというと敷居が高いイメージがあるかもしれませんが、しっかりと使う事によってVBA関数ではできないことが可能になったりするので非常に便利です(。-`ω-)

今回はそんなAPIを使用してプログラムを待機することができるSleep関数の使い方についてご紹介していきます^_^

Sleep関数の使い方

では早速詳しい使用方法について解説をしていきます\(◎o◎)/!

まずVBAでAPIを使用する場合、APIを使用することをモジュール内で宣言しなければいけません。
※APIの宣言はモジュールの一番上でしなければいけません

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

下記の画像のように普段プログラムを記述する部分の一番上に挿入することによって効果を発揮します。

宣言しなかった場合はエラーになりますのでお忘れなく( ;∀;)私は結構忘れます(笑)

Sleep関数の書式

続いてSleep関数自体の書式です。

 Sleep 指定する秒数

先ほども言いましたが【指定する秒数】には1/1000秒を指定してください。

例えば5秒停止させたい場合は【Sleep 5000】、3秒の場合は【Sleep 3000】のようにします。

間違えて【Sleep 1】のように記述しても停止したのかが全くわかりません(笑)

Sleep関数のサンプルコード

では実際にVBAでsleep関数を使用した場合のサンプルコードをご覧ください^_^

このサンプルコードはメッセージボックスのOKを押した3秒後に【3秒経過しました】というメッセージボックスを表示させるプログラムです。

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'APIを宣言
Sub Sample()

MsgBox "OKを押すと3秒後にメッセージが表示されます。"

 Sleep 3000  'OKが押された後3秒間待機
  
MsgBox "3秒経過しました"
 
End Sub

Sleep関数使用時の注意点

Sleep関数使用時の注意点としてMicrosoftのヘルプに下記のような記述がありました。

32 ビット版の Office 2010 プログラムで VBA マクロを編集すると、”コンパイル エラー: 64 ビット版のシステムで使用するには、このプロジェクトのコードを更新する必要があります” というエラー メッセージが表示される

Microsoftヘルプより引用

Office2010を使用している場合はこのようなエラーが発生する場合があるので、その場合は【API宣言】の部分を下記のように書き換えることで回避できるとのことです。

#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

ロゴ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です