更新日:、 作成日:
VBA TimeSerial 関数:時分秒から時間を取得する
はじめに
Excel VBA マクロの TimeSerial 関数から時分秒から時間を取得する方法を紹介します。
TimeSerial 関数は、時分秒の各値から時刻を返します。
TimeSerial(1, 2, 3) のようにして、1:02:03 の時間を取得できます。
24 時間以上の時間を入力できます。
時分秒に分かれた値から時間を取得したいときに使用します。
年月日から日付を取得するには「DateSerial 関数」を使用します。
数値を時間に変換するには「数値を変換する」をご覧ください。
TimeSerial 関数の引数と戻り値
TimeSerial(時, 分, 秒)
指定した時分秒の時刻を取得します。
引数「時」 | 時の値を指定します。 |
引数「分」 | 分の値を指定します。 |
引数「秒」 | 秒の値を指定します。 |
戻り値の型 | 日付型 (Date) |
解説
引数「時」には 0 ~ 23 の他に -1 以下や 24 以上も指定できます。 24 なら翌日の 0 時になります。
引数「分」には 0 ~ 59 の他に -1 以下や 60 以上も指定できます。 60 なら 1 時間後の 0 分になります。
引数「秒」には 0 ~ 59 の他に -1 以下や 60 以上も指定できます。 60 なら 1 分後の 0 秒になります。
24 時間以上
時刻を表す日付は、日付型の初期値 1899/12/30 です。引数「時」が 24 なら、翌日の 0 時である 1899/12/31 0:00:00 になります。これで 24 時間以上を表しています。
使用例
TimeSerial 関数の使用例を紹介します。
時分秒から時間を取得する
時分秒から時間を取得します。
Dim t As Date
t = TimeSerial(1, 2, 3)
Debug.Print(t) ' 1:02:03、日付が 1899/12/30 のときは時刻だけ表示
t = TimeSerial(24, 2, 3) ' 時が 24
Debug.Print(t) ' 1899/12/31 0:02:03
t = TimeSerial(48, 2, 3) ' 時が 48
Debug.Print(t) ' 1900/01/01 0:02:03
t = TimeSerial(1, -1, 3) ' 分が -1
Debug.Print(t) ' 0:59:03
t = TimeSerial(1, 60, 3) ' 分が 60
Debug.Print(t) ' 2:00:03
t = TimeSerial(1, 2, -1) ' 秒が -1
Debug.Print(t) ' 1:01:59
t = TimeSerial(1, 2, 60) ' 秒が 60
Debug.Print(t) ' 1:03:00
時分秒を取得する
「Hour 関数、Minute 関数、Second 関数」を使用して、時分秒を取得できます。
Dim 時 As Integer
Dim 分 As Integer
Dim 秒 As Integer
時 = Hour(Now) ' 時
分 = Minute(Now) ' 分
秒 = Second(Now) ' 秒
Dim t As Date
t = TimeSerial(時, 分, 秒)
Debug.Print(t) ' 現在の時刻
スポンサーリンク