教えて!ExcelVBA!

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

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

f:id:m_kbou:20200420123431p:plain

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

 

 

構文

Timer関数の記述方法

Timer

[説明]:

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

 

使い方

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

[プログラミング例]:

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関数の値から変数:開始時間から引いた算出結果を表示します。」との意味になります。

f:id:m_kbou:20210423101733p:plain

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

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423101804p:plain

②1つ目のMsgBoxで「計測を開始します。」が表示されます。

f:id:m_kbou:20210423101822p:plain

③2つ目のMsgBoxで「OKボタンをクリックすると、経過秒数が表示されます。」が表示されます。

f:id:m_kbou:20210423101836p:plain

④3つ目のMsgBoxで、上記②のMsgBox<OK>ボタンをクリックしてから上記③のMsgBox<OK>ボタンをクリックするまでの経過時間が表示されます。今回は「経過秒数:6.365234」が表示されました。

f:id:m_kbou:20210423101848p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

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