【EXCEL VBA】時間文字列(hhmmss形式) と Date型を相互変換したい

時間文字列(hhmmss形式)をDate型へ変換、Date型を時間文字列(hhmmss形式)に変換する方法を紹介します。Format関数を利用することで相互変換することができます。 VBAには、時間型は存在しないためDate型との相互変換となります。

Format関数で解決する

Format 関数は、もともとは値を指定した書式で文字列型に変換する関数です。hhmmss 形式の時間文字列をDate型に型変換できる文字列に変換することで、Date型への変換を実現しています。

サンプルプログラムを確認する(コピペOK)

Sub sample()
    Dim str As String: str = "141159"   '14時11分59秒
    Dim ti As Date
    
    ' hhmmss形式からDate型への変換
    ti = Format(str, "@@:@@:@@")
    Debug.Print ti                      '14:11:59
    Debug.Print Hour(ti)                '14
    Debug.Print Minute(ti)              '11
    Debug.Print Second(ti)              '59
    
    ' Date型からhhmmss形式への変換
    Debug.Print Format(ti, "hhmmss")    '141159
End Sub