本ページには広告が含まれています。

ExcelVBA Timer 関数 午前0時からの経過秒数を返す

ExcelVBA Timer 関数 午前0時からの経過秒数を返す

Excel VBAの「Time 関数」について解説します。

スポンサーリンク

Time 関数とは

Excel VBA の Time 関数は、システム時刻の午前 0 時から経過した秒数を表す単精度浮動小数点数型 (Single) の値を返します。

では、Timer 関数の構文や引数の設定など、実際の使い方について解説していきたいと思います。

Timer 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

Timer

引数

Timer 関数に引数はありません!

戻り値

戻り値説明
秒数を示す値午前0時からの経過秒数を表す Single の値を返します
※ Single = 単精度浮動小数点型(Singleは 7 桁の数字に丸められます)
※ 午前0時はシステムの設定時刻です(1日の秒数は84600秒です)

Timer 関数の戻り値は、午前0時からの秒数が整数部で、小数以下の値まで取得します。
Single型の数値は 7 桁に丸められます。Double型で宣言した変数に代入すれば、約 15 桁まで表示します。

解説(使用例)

Timer 関数の使用例で解説します。

Timer 関数の戻り値を確認するサンプル

Timer 関数の戻り値を各数値型変数に代入して表示するサンプルです。

'■Timer関数の戻り値を確認するサンプル
Sub Timer_Sample01()
'▼戻り値を格納する変数を宣言
  Dim ts As Single  '単精度浮動小数点型
  Dim td As Double  '倍精度浮動小数点型
'▼各変数に取得値を代入
  ts = Timer
  td = ts
'▼MsgBoxで各変数の値を表示する
  MsgBox _
    "【Timer関数実行結果】" & vbCrLf & _
    "Single型:" & ts & vbCrLf & _
    "Double型:" & td
End Sub

▼戻り値を格納する変数を宣言
4~5行目、Single型変数 ts、Double型変数 td を宣言しています。

▼各変数に取得値を代入
7行目、ts = Timer でSingle型変数に実行時の午前0時からの経過秒数を代入します。
8行目、td = ts でDouble型変数に ts の値を代入します。

▼MsgBoxで変数の値を表示する
10行目、Single型Double型の値を比較できるように成形して表示させています。

Double型の数値と比較すると、Single型の数値が 7 桁に丸められていることが確認できます。

MsgBox の画像がこちらです。

Timer_Smple01 MsgBox画像

Timer関数で経過時間を計測するサンプル

MsgBoxを表示していた時間を計測する簡単なサンプルコードです。

'■Timer関数で時間を計測するサンプル
Sub Timer_Sample02()
'▼値を格納する変数を宣言
  Dim st As Single
  Dim et As Single
  Dim pt As Single
'▼開始時のタイマー値を取得してメッセージを表示
  st = Timer
  MsgBox "【時間を計測するサンプルです】" & vbCrLf & _
    "メッセージ表示と同時に計測を開始しました" & vbCrLf & _
    "「OK」クリックまでの経過時間を計測表示します"
'▼終了時のタイマー値を取得する
  et = Timer
'▼経過秒数を計算してメッセージを表示する
  pt = et - st    '終了時から開始時をマイナス
  MsgBox "経過時間は、" & pt & " 秒でした"
End Sub

▼値を格納する変数を宣言
4~6行目、3つの変数を用意します。「st」はスタート時のTimer値、「et」は終了時のTimer値、「pt」は経過時間用でいずれも Single型で宣言しています。

▼開始時のタイマー値を取得してメッセージを表示
8行目、st = Timer でスタート時の Timer値を取得して代入します。
9行目、次のMsgBoxを表示します。そして「OK」ボタンクリックまでの経過時間を計測表示します。

Timer_Sample02 MsgBox画像(1)

▼終了時のタイマー値を取得する
13行目、et = Timer で MsgBox が閉じられた時点の Timer値を取得します。

▼経過秒数を計算してメッセージを表示する
15行目、pt = et – st で終了時から開始時をマイナスして経過時間を変数に代入します。
16行目、結果の MsgBox を表示します。

結果の MsgBox 画像がこちらです。

Timer_Sample02 MsgBox画像(2)

日付・時刻関数の使用例について

Timer など覚えておきたい日付時刻の処理について、より詳しい解説記事がこちらです。サンプルコードも複数掲載していますので是非ご覧ください。

Date 関数のほか「日付・時刻」の関数について解説しているこちらの記事もご覧いただければ幸いです。

おわりに

Excel VBA Timer 関数は、システム時刻の午前 0 時から経過した秒数を表す単精度浮動小数点数型 (Single) の値を返します。

ただ単に 0 時からの経過時間(秒数)を取得するだけに使うことはよりも、計測地点単位の経過秒数を把握するために使うことが多いと思います。

「終了時点のTimer値」-「開始時点のTimer値」=経過時間

単純に計測するだけでなく、他のメソッドなどと組み合わせて「一定時間経過したら何かを実行する」というような使い方をします。

この記事が参考になると思いますので是非ご覧ください。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!