VBATips

yymmdd→yyyy/mm/ddに変換する【Format関数】【ExcelVBA】

yymmdd形式をyyyy/mm/dd形式に変換したい

エクセルで移行用のデータをもらった時、必要な書式になっていない場合があります。
特にyymmdd形式だと日付とは認識されず、isDate関数で使用できません。

今回紹介するコードで「yymmdd→yyyy/mm/dd」に変換可能です。

yymmdd→yyyy/mm/ddに変換するサンプルコード

Format関数を使用し、変換します。

Public Sub sample()
    
    Dim str As String: str = "220910"
    
    '■求めている結果が出ない
    Debug.Print Format(str, "yy/mm/dd")      '04/10/29 が出力。2022/09/10とはならない
    Debug.Print Format(str, "yyyy/mm/dd")    '2504/10/29が出力。2022/09/10とはならない
    Debug.Print Format(str, "@@@@/@@/@@")    '  22/09/10が出力。2022/09/10とはならない

    '■求めている結果が出る    '220910→ 22/09/10→ 2022/09/10と変換するイメージ
    Debug.Print Format(Format(str, "@@@@/@@/@@"), "yyyy/mm/dd") '2022/09/10と正しい結果を出力
End Sub

注意点

  • Format関数で文字列形式からDate型のデータ型に型変換するイメージです。
  • 「@@@@/@@/@@」は 一つの文字またはスペースを表します。
    @(アットマーク)に対応する位置に文字が存在する場合はそのまま表示され、なければスペースが表示されます。

関連記事

コメント

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