騎空士ときどきプログラマーな日記

グラブルで頑張る騎空士の日常を綴ります。

【VBA】 csv形式で日付を出力するときの書式変更に注意!!

社会人1年目のなーたんです。

 

最近仕事でExcel資料から必要なデータだけ取ってきて、

DBに登録するcsvファイル作成するマクロを作成したのだけれど・・・

 

日付の出力の際、SaveAsメソッドで保存すると西暦が末尾に来てしまう(´・ω・`)

具体的には、

【2014/1/12】 と出力したいのに 【1/12 2014】ってな感じになる

 

しっかりとYear()、Month()、Day()等で指定して並べてもこうなってしまうのだからなんじゃこりゃw

 

改善策としては、

 SaveAsメソッドの引数にLocalというのがあり、これをTrueにするってだけの話でしたwトホホ・・(;´д`)ノ| 柱 |

 

ソースでいうと…

------------------改善前-----------------------

'名前をつけてcsvファイルで新規保存
 Save_Filename = strFileName
 ThisWorkBook.SaveAs Filename:=Replace(Save_Filename, ".xls", ".csv"), FileFormat:=xlCSV

 

------------------改善後-----------------------

'名前をつけてcsvファイルで新規保存
 Save_Filename = strFileName
 ThisWorkBook.SaveAs Filename:=Replace(Save_Filename, ".xls", ".csv"), FileFormat:=xlCSV, Local:=True

 

この方法は、Microsoft Excel 2002以降で使用可能らしいですよ!