こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CSV保存マクロ 日付が逆になり困っています。

マクロに詳しい方、お願いいたします。
エクセルのシートで2018/1/21とセルに記載したものを
下記マクロ(標準モジュールにコード記載)して、CSVで保存しています。
実行後CSVを開くと、21/1/2018になって逆になります。
調べてもわかりません。よろしくお願いします。



Sub Macro1()
Application.DisplayAlerts = False
main_f = ActiveWindow.Caption
out_pass = ActiveWorkbook.Path & "\"
Out_name = ActiveSheet.Name
Sheets(Out_name).Select
Sheets(Out_name).Copy
ActiveWorkbook.SaveAs Filename:= _
out_pass & Out_name & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub

投稿日時 - 2018-01-21 14:31:55

QNo.9420669

すぐに回答ほしいです

質問者が選んだベストアンサー

>エクセルのシートで2018/1/21とセルに記載したものを
下記マクロ(標準モジュールにコード記載)して、CSVで保存しています。
>実行後CSVを開くと、21/1/2018になって逆になります。
再確認してください。
日本の日付は標準で"yyyy/m/d"なのでCSVで保存前は日本語版のExcelと言うことが分かります。
保存されたCSVファイルでは"d/m/yyy"となっているとのことですが実際は日と月が逆の"m/d/yyyy"(1/21/2018)ではないでしょうか?
Microsoftは米国の会社なのでVBAで無指定のとき日付の標準フォーマットは"m/d/yyyy"と解釈されたのではないでしょうか?
SaveAsのオプションでLocal:=Trueを追加することで解決できるかも知れません。

投稿日時 - 2018-01-21 19:21:25

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

Googleで、例えば、「csvファイル 読み込み 日付書式」で照会して、出てくる記事を適当に選んで読んでください。
有名な質問事項なので、それらの説明に尽きると言える。
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother-mso_2010/%EF%BD%83%EF%BD%93%EF%BD%96%E3%83%87%E3%83%BC/682cbe27-fb0b-474d-a2ef-90fba7461926など

投稿日時 - 2018-01-21 22:10:54

ANo.3

#2のご回答の通りでしょう。
日付の値はひdけ日付シリアル値という20世紀に入ってからの経過日数であることを知っているのかな。日本、欧米とも同じだろう。
マクロをやりながら、エクセルでは、セルの値に対し+書式適用の結果がセルに見えて居ることを知っているのかな。
それがデフォルト書式として、英米式や日本式が利用エクセルの国別バージョンで、とりあえずどれか1つ採用されている。
読みこんだのちに、セルの書式を手動やVBAで変えれば済むこと。
CSVの日付ソース部分をいじくって日付文字列にすることも可能だが、計算や日付書式として、日付として使えず困ることの方が多いだろう。
ーー
参考になれば
例のデータ A2:B3
2018/1/20130
2018/1/23140
ーーー
Sub test01()
Open "日付表示,csv" For Output As #1
For i = 2 To 3
dt = Cells(i, "A")
Data = Cells(i, "B")
dt1 = Format(dt, "yyyy/mm/dd")
dt2 = Format(Data, "#,##0")
Print #1, dt1, dt2
Next i
Close #1
End Sub
メモ帳で表示すると
2018/01/20 130
2018/01/23 140
ーー
"yyyy/mm/dd"のところを適当に変えるだけで好みの書式表示になる。
参考
http://www.atmarkit.co.jp/ait/articles/1504/30/news014.html
http://programming-study.com/technology/vba-date/

投稿日時 - 2018-01-21 22:03:36

ANo.1

出力したcsvをメモ帳などテキスト用ソフトで
開いた場合はいかがでしょうか。
問題がない場合は、Excelで開くときに変換されています。
対策は以下を参考ください。
http://global-wing.com/activity/csv_point_convert.html

あとは地域設定です。
お使いのosが不明ですがWindowsならコントロールパネルの
地域の設定が日本以外になっていないか確認や、
日付書式がyyyy/mm/ddになっているか確認ください。
以下はWindows7の場合の例です
http://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=011856

参考にならなかったらごめんなさい。

投稿日時 - 2018-01-21 14:58:08

あなたにオススメの質問