教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA関数】Timer関数を使用した経過秒数の計測方法を教えて!

       f:id:m_kbou:20200210113351p:plain

Timer関数を使用した経過秒数の計測方法について説明します。具体的な使用方法としては、処理に掛かった時間等を算出する場合に使用される事が多いです。また、Timer関数で表示される秒数は小数点以下を含むため、整数値のみ必要な場合はInt関数で整数化してから使用して下さい。

 

【目次】

 

構文

Timer関数の記述方法

=======================================================================

Timer

=======================================================================

[説明]:

Timer関数は午前0時から経過した秒数を表す単精度浮動小数点(Single)の値を返します。Timer関数の値は当日の23時59分59秒まで累積されています。今回の経過秒数を計測する方法として、処理終了時のTimer関数の値から処理開始時のTimer関数の値を引き算する事で算出します。

 

使い方

使い方について、具体的に説明していきます。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
   
    Dim 開始時間 As Single
   
    MsgBox "計測を開始します。", 64, "経過時間計測"
   
    開始時間 = Timer
   
    MsgBox "OKボタンをクリックすると、経過秒数が表示されます。", 64, "経過時間計測"
   
    MsgBox "経過秒数:" & Timer - 開始時間, 64, "経過時間計測"
   
End Sub

-------------------------------------------------

内容は、「最初に変数:開始時間を指定します。1つ目のMsgBoxで”計測を開始します。”のメッセージを表示し、<OK>ボタンがクリックされた時点で変数:開始時間にTimer関数の値をセットします。2つ目のMsgBoxでは”OKボタンをクリックすると、経過時間が表示されます。”のメッセージを表示し、<OK>ボタンがクリックされた時点で3つ目のMsgboxを表示します。この3つ目のMsgBoxでは2つ目のMsgBoxの<OK>ボタンがクリッされた時点のTimer関数の値から変数:開始時間から引いた算出結果を表示します。」との意味になります。

[実行例]:

・1つ目のMsgBox表示内容です。

f:id:m_kbou:20200210104243p:plain

・2回目のMsgBox表示内容です。

f:id:m_kbou:20200213101237p:plain

・3回目のMsgBox表示内容です。
※ここで1つ目のTimer関数値と2つ目のTimer関数値の差分である経過秒数を表示します。

f:id:m_kbou:20200210111916p:plain

Timer関数を使用した経過秒数の計測方法についての説明は以上です。

 

おわりに

今回は、Timer関数を使用した経過秒数の計測方法について説明しました。上記でも書きましたが、Timer関数は当日の23時59分59秒までの累積となるため、日を跨ぐ場合(午前0時を超える場合)は、午前0時前と後で別々に計算する必要があります。注意して下さい。