更新日:、 作成日:
VBA TimeValue 関数:日時から時間を取得する
はじめに
Excel VBA マクロの TimeValue 関数から日時から時間を取得する方法を紹介します。
TimeValue 関数は、指定した日時の時刻を返します。
2013/01/02 3:04:05 なら 3:04:05 の時刻を取得できます。
日時から時間の部分を取得したいときに使用します。
日時から日付を取得するには「DateValue 関数」を使用します。
日付を入力や取得するには「日付を入力する」をご覧ください。
TimeValue 関数の引数と戻り値
TimeValue(日時)
日時から時刻を取得します。
引数「日時」 | 日時を指定します。 |
戻り値の型 | 日付型 (Date) |
解説
引数「日時」が 2013/01/02 3:04:05 なら、3:04:05 の時間を返します。
引数「日時」が 2013/01/02 なら、0:00:00 の時間を返します。
日付型の範囲は 西暦100年1月1日 ~ 西暦9999年12月31日 です。これを超えるときは「エラー 13 型が一致しません。」が発生します。
使用例
TimeValue 関数の使用例を紹介します。
日時から時間を取得する
日時から時間を取得します。
Dim d As Date
d = TimeValue("2013/1/2 3:4:5")
Debug.Print(d) ' 3:04:05
d = TimeValue("2013年1月2日 3時4分5秒")
Debug.Print(d) ' 3:04:05
d = TimeValue("1:2:3")
Debug.Print(d) ' 1:02:03
d = TimeValue("1時2分3秒")
Debug.Print(d) ' 1:02:03
d = TimeValue("1:2:3")
Debug.Print(d) ' 1:02:03、全角は取得できる
Debug.Print(TimeValue(0)) ' エラー、CDate 関数なら変換できる
Debug.Print(TimeValue("24:00:00")) ' エラー、24 時間を超える時刻は変換できない
Debug.Print(TimeValue("一時二分三秒")) ' エラー、漢数字は変換できない
時分秒を取得する
「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) ' 現在の時刻
現在の時間を取得する
「Time 関数」を使用して、現在の時間を取得できます。
Dim d As Date
d = Now
Debug.Print(d) ' 2013/01/02 3:04:05
d = Date
Debug.Print(d) ' 2013/01/02
d = Time
Debug.Print(d) ' 3:04:05
スポンサーリンク