Now関数
Now関数は、時間を取得するものになります。
目次
Now関数とは
MsgBox関数は、コンピュータのシステムの日付と時刻の設定に基づいて、現在の日付と時刻を表すバリアント型 (内部処理形式 Date の Variant) の値を返します。
構文 |
---|
#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
こちらはSleep関数を利用するためのAPI宣言になります。API宣言Sleep関数を利用しますという宣言で必ず記述します。ここで注意点がありますが、API宣言を「IF~Thenステートメント」で分岐させているのが分かるかと思います。これは、office2010で64bit(ビット)版の場合は書き方が異なるため、「IF~Thenステートメント」でそれぞれAPI宣言をしています。手元のPC環境に合わせた書き方でも大丈夫ですが、汎用性を持たせるための記述になりますので、追記しておきましょう。
参考元は「32ビット版のOffice2010プログラムでVBAマクロを編集すると・・・」になりますので、一度確認してください。
もう1つ注意する点はSleep関数を利用している間は、EXCEL操作は一切行えません。処理中でも操作できるようにするには、DoEvents関数を利用する必要があります。こちらはWindowsに制御を移してくれる関数でループ処理などで利用する場合、プログラムが固まることがなくなります。
また、宣言ステートメントは、最初のプロシージャ宣言の前に配置する必要がありますので、一番上に記述してください。
Sleepで時間を止める
Sleep関数を利用して時間を止めます。
処理の3秒後にメッセージボックスを表示させるサンプルコード
こちらのサンプルコードは処理をするとSleep関数で3秒間処理を停止し、その後にメッセージボックスを表示させるマクロになります。
#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
Sub sample()
Sleep 3000
msgBox "3秒間処理を止めました。"
End Sub
実行結果
3秒後にメッセージボックスが表示されます。
利用されているコンテンツ
Sleep関数は、IE(InternetExplorer)を操作する上で必ず利用されるものです。ほとんどのコンテンツで利用されていますので、ここでは代表的なコンテンツを紹介します。