TimeValue Function

文字列として指定された時、分、秒の値を基に、該当する時刻を示す 1 つの数値 (シリアル値) を返します。こうして変換された数値は、2 つの時刻間の時間計算などに利用できます。

構文:

TimeValue (Text As String)

戻り値:

日付

パラメーター:

Text: 「HH:MM:SS」の形式で指定した、変換する時刻データを示す文字列表式。

この関数は、任意の時刻を 1 つの数値として変換するもので、こうした得られる数値は時刻間の時間計算などに利用できます。

この TimeValue 関数 の返す値は、バリアント型の VarType 7 (Date) であり、内部的には0から 0.9999999999 の倍精度値として格納されます。

DateSerial や DateValue 関数では、日付データをシリアル値に変換する際に、固定設定された基準日からの経過日数として換算していますが、TimeValue 関数で返される値は、時刻間の計算には使えるものの、そのまま直接的な評価が行えるものではありません。

TimeSerial 関数の場合、関数に渡すパラメータ (時、分、秒) は、それぞれ個別の数値表式として指定することができます。これに対して TimeValue 関数では、時刻データを 1 つの文字列の形で渡します。

Error codes:

5 無効なプロシージャー呼び出しです

13 データ型が一致しません

例:

Sub ExampleTimerValue

Dim daDT As Date

Dim a1, b1, c1, a2, b2, c2 As String

    a1 = "start time"

    b1 = "end time"

    c1 = "total time"

    a2 = "8:34"

    b2 = "18:12"

    daDT = TimeValue(b2) - TimeValue(a2)

    c2 = a1 & ": " & a2 & chr(13)

    c2 = c2 & b1 & ": " & b2 & chr(13)

    c2 = c2 & c1 & ": " & trim(Str(Hour(daDT))) & ":" & trim(Str(Minute(daDT))) & ":" & trim(Str(Second(daDT)))

    MsgBox c2

End Sub