VBATips

yyyymmdd←→yyyy/mm/ddに相互変換【Format関数】【ExcelVBA】

yyyymmdd形式、yyyy/mm/dd形式に相互変換したい

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

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

yyyymmdd←→yyyy/mm/ddに相互変換するサンプルコード

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

'■yyyymmdd←→yyyy/mm/dd相互変換
Public Sub sample_yyyymmdd_Conv()
    
    '■yyyymmdd→yyyy/mm/dd
    Dim str As String: str = "20210225"
    Debug.Print Format(str, "@@@@/@@/@@")   '2021/02/25
    
    '■yyyy/mm/dd→yyyymmdd形式への変換
    Dim sDate As Date: sDate = "2021/02/25"
    Debug.Print Format(sDate, "yyyymmdd")      '20210225
End Sub

注意点

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

関連記事

0埋めして桁数を揃える(Format関数/Right関数)
指定した時・分・秒をそれぞれ取得する【Hour関数/Minute関数/Second関数】【ExcelVBA】
指定した年・月・日をそれぞれ取得する【Year関数/Month関数/Date関数】【ExcelVBA】
現在日付・現在時刻を取得する【Date関数/Time関数/Now関数】【ExcelVBA】

コメント

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