【エクセルマクロ】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選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説