VBA Sleep関数について~関数の解説と使用例~

VBA Sleep関数について~関数の解説と使用例~

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

VBAでマクロを作成しているときに、「途中で少し処理を止めたい」と思ったことはありませんか?○秒毎に処理を行う等のマクロを作成する場合は、Sleep関数を使用してみましょう。


1.Sleep関数について

1-1.Sleep関数とは

Sleep関数とはWindowsAPIの機能で、指定した時間が経過するまで実行を中断して、経過後に実行を再開します。指定する時間は、「ミリ秒」で行います。例)10秒中断する場合は、「10000」を指定します。

似たような機能で、Waitメソッドがあります。Waitメソッドについては、下記リンクを参照してください。

関連記事

1-2.Waitメソッドとの違い

Sleep関数とWaitメソッドとの違いは、下記の表にまとめています。

比較内容SleepWait
処理内容指定した秒だけ処理を中断
その後、処理を再開
指定した時間まで処理を中断
その後、処理を再開
設定する内容中断する時間再開する時間
設定する値の単位(形式)ミリ秒hh:mm:ss
指定する時間のフォーマットInteger型Date型
中断方法なしESCボタンを押下
使用時のデメリット処理の中断ができない過去の時間を指定すると、無限ループになり処理が終わらない

採用基準の一つとして、使用目的が「中断する時間」と「再開する時間」のどちらを目的とするかがあります。

1-3.Sleep関数の構文

Sleep関数の構文は下記の通りです。

Sleep [中断する時間(ミリ秒)] 

2.Sleep関数の使用例

2-1.基本的な使用例

基本的な使い方は下記のように行います。

Sub sample01()

    Sleep 5000
    
    MsgBox "Sleep終了"   '処理例

End Sub

2-2.コンパイルエラーが出た場合

2-1のソースだけでは、下記のようなエラーが表示されます。

コンパイルエラー

その場合、下記の一文をソースの先頭に追加する必要があります。

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

また、OS64ビットの場合は、上記を追加しても別のエラーが表示されます。

コンパイルエラー2

その場合は、赤文字の箇所を追加する必要があります。

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

3.最後に

Sleep関数とWaitメソッドは、処理は似ていますが使用目的に応じて使い分けてください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中