関数・メソッド

文字列を日付データに変換する【CDate関数】【ExcelVBA】

構文

CDate(Expression)  As Date

Expression・・・ 日付型に変換したい文字列数値(シリアル値)
戻り値 ・・・・・Date型(日付型)
Expressionに指定した文字列や数値(シリアル値)をDate型に変換します。
(Date型にならないデータは実行時エラーとなります)

CDate関数のサンプルコード

    Public Sub sample_Cdate()
    
        '■文字列は日付データに変換(西暦/和暦)
        MsgBox CDate("2021/01/06")      '2021/01/06
        MsgBox CDate("2021年01月06日")  '2021/01/06
        MsgBox CDate("令和3年01月06日") '2021/01/06
        MsgBox CDate("R3年01月06日")    '2021/01/06
        MsgBox CDate("2021年1月6日") '2021/01/06
        
        '■Date型なので時刻データも含めて変換
        MsgBox CDate("令和3年01月06日12時0分") '2021/01/06 12:00:00
        
        '■数値はシリアル値として判断
        MsgBox CDate(44202)             '2021/01/06
        MsgBox CDate("44202")           '2021/01/06
        
        '■小数点は時刻を示します
        MsgBox CDate(44202.00001)       '2021/01/06 00:00:01
        
        '■実行時エラー 13 型が一致しません
        MsgBox CDate("")        '省略時
        MsgBox CDate("2021年")  '日付データに変換できない場合
        MsgBox CDate("あああ")  '日付データに変換できない場合
    End Sub

注意点

  • Webスクレイピングや他システムからデータを取得する時、データ型がDate型ではないデータが飛んできた時に、エラーになってしまう場合があります。
    その場合にIsDate関数でDate型に変換可能か調べて、CDate関数を使用しましょう。

関連記事

西暦→和暦変換-和暦→西暦変換【DATEVALUE関数】【ExcelVBA】
【VBA一覧】西暦、和暦変換のエクセル年号一覧

コメント

タイトルとURLをコピーしました