【エクセルマクロ】CSVの日付が逆になって困る:解決方法

vba-CSV日付逆-アイキャッチ ExcelVBA

エクセルマクロで、CSVの日付が逆になって困るときの対処方法をご紹介します。

ぜひお試しください!

CSVの日付が逆になる現象発生

以下のマクロを実行すると、日付形式が逆になる現象が発生しました。


Sub 日付CSV逆になる()
 
      '新規ファイル作成
      Workbooks.Add

      With ActiveSheet
          .Cells(1, 1) = "りんご"
          .Cells(1, 2) = "2021/10/11"
          .Cells(1, 3) = "120"
      End With
                
      'CSV作成
      ActiveWorkbook.SaveAs Filename:= _
          ThisWorkbook.Path & "\" & "テスト.csv", FileFormat:=xlCSV, Local:=True
      
      'CSVを閉じる
      Application.DisplayAlerts = False
          ActiveWorkbook.Close True
      Application.DisplayAlerts = True

End Sub
マクロ実行後

VBAで出力したCSVを開くと、

日付が逆(mm/dd/yyyy)になっていました。

yyyy/mm/ddにしたい・・!


 

解決方法

以下のマクロを実行すると、日付が勝手に逆になる現象を解決します。


Sub 日付CSV逆になる解決()
 
      '新規ファイル作成
      Workbooks.Add

      With ActiveSheet
          .Cells(1, 1) = "りんご"
          .Cells(1, 2) = "2021/10/11"
          .Cells(1, 2).NumberFormatLocal = "yyyy/mm/dd"
          .Cells(1, 3) = "120"
      End With
                
      'CSV作成
      ActiveWorkbook.SaveAs Filename:= _
          ThisWorkbook.Path & "\" & "テスト.csv", FileFormat:=xlCSV, Local:=True
      
      'CSVを閉じる
      Application.DisplayAlerts = False
          ActiveWorkbook.Close True
      Application.DisplayAlerts = True

End Sub
マクロ実行後

年月日の表示形式を「yyyy/mm/dd」にすることができました。

このページの一番上でご紹介したコードに、以下を1行追加すると解決できます。

[.Cells(1, 2).NumberFormatLocal = “yyyy/mm/dd”]


 
この記事がお役に立ちますと幸いです。
 

・【エクセルマクロ】CSV処理を自動化まとめ
 

【エクセルマクロ】CSV処理を自動化:超便利10選
エクセルマクロで、CSV処理を自動化するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!

 

ド素人でも100倍速! ChatGPT×Excel 時短技大全

「やりたいこと」を書くだけでExcel作業もマクロも自動化できる一冊

Excel業務をChatGPTに丸投げしてラクにしたいなら、まず読んでおきたい一冊です!


★★★★☆ 4.0 ※ Amazonカスタマーレビューより
ExcelVBAを使ったAIへの質問・依頼のコツがよくわかる
マクロをAIに自動生成させる発想が新しく、実務でそのまま使える事例が多い
住所分割・重複チェックなど、すぐ使える実用マクロ事例が豊富