VBA 文字列から日付型へ変換する方法

今回は文字列から日付型へ変換する方法を紹介していきます。

文字列から日付型へ

文字列から日付型へ変換するには、「CDate」を利用します。

CDate(文字列)

 

試しに、文字列「2022/01/07」を日付型に変換していきます。

Private Sub CommandButton1_Click()

    '変数宣言
    Dim str_hiduke As String
    Dim date_hiduke As Date
    
    '文字列を入力
    str_hiduke = "2022/01/07"
    
    '文字列を日付型に変換
    date_hiduke = CDate(str_hiduke)
    
    '結果出力
    Debug.Print (date_hiduke)

End Sub

 

結果

2022/01/07

 

文字列を日付型に変換することができました。

日付型へ変換可能な文字列

スラッシュ「/」やハイフン「-」区切りなど、様々な形から日付型に変換できるので紹介していきます。

Private Sub CommandButton1_Click()

    '変数宣言
    Dim date_hiduke As Date
    
    '様々な変換
    date_hiduke = CDate("2022/01/07")
    date_hiduke = CDate("2022/01/07 18:30:50")
    date_hiduke = CDate("2022-01-07")
    date_hiduke = CDate("2022-01-07 18:10:20")
    date_hiduke = CDate("2022年01月07日")
    date_hiduke = CDate("令和4年01月07日")

End Sub

例のように、日付だけでなく時間を入れることも可能です。

 

注意点:「yyyyMMdd」の場合

1点注意が必要なのは、「20220107」のように区切りがない場合は変換できません。

Private Sub CommandButton1_Click()

    '変数宣言
    Dim str_hiduke As String
    Dim date_hiduke As Date
    
    '文字列を加工
    str_hiduke = "20220107"
    
    '変換
    date_hiduke = CDate(str_hiduke)
    
End Sub

結果:エラーメッセージが表示される。

下記のように変換できる形に文字列を加工し利用しましょう。

Private Sub CommandButton1_Click()

    '変数宣言
    Dim str_hiduke As String
    Dim date_hiduke As Date
    
    '文字列を加工
    str_hiduke = "20220107"
    str_hiduke = Left(str_hiduke, 4) & "/" & Mid(str_hiduke, 5, 2) & "/" & Right(str_hiduke, 2)
    
    '変換
    date_hiduke = CDate(str_hiduke)
    
End Sub

 

サンプルソース

Private Sub CommandButton1_Click()

    '変数宣言
    Dim str_hiduke As String
    Dim date_hiduke As Date
    
    '様々な変換例
    date_hiduke = CDate("2022/01/07")
    date_hiduke = CDate("2022/01/07 18:30:50")
    date_hiduke = CDate("2022-01-07")
    date_hiduke = CDate("2022-01-07 18:10:20")
    date_hiduke = CDate("2022年01月07日")
    
    '文字列を加工
    str_hiduke = "20220107"
    str_hiduke = Left(str_hiduke, 4) & "/" & Mid(str_hiduke, 5, 2) & "/" & Right(str_hiduke, 2)
    
    '加工した文字列を変換
    date_hiduke = CDate(str_hiduke)
    
End Sub

 

まとめ

文字列を日付型に変換するには「CDate(文字列)」を利用しましょう。

また、注意点として「20220107」のような場合は、文字列を「2022/01/07」のような変換できる形に加工する必要があるので注意してください。

 

EXCEL VBAの記事一覧

おすすめの記事