• ベストアンサー

VBAでのCSV保存

VBAでExcelのデータを保存したく、 ActiveSheet.SaveAs _ Filename:=xxxxx, _ FileFormat:=xlCSV といった感じにしています。 ほぼこの方法で問題ないのですが、なぜか変形してしまう データがあります。 文字列として2004/6/18といった形で入力しているデータが 6/18/2004のように変化してしまいます。 FileFormatを指定しなければ、2004/6/18のままですが、 それではCSVファイルになりません。 どうしたらいいのでしょうか?

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

ああ いい 2004/6/18 ←セル書式「日付」 うう ええ 2004/6/18 ←セル書式「文字列」 上記のデータで Sub aaa()   ActiveSheet.SaveAs _   FileName:=ThisWorkbook.Path & "\test.csv", _   FileFormat:=xlCSV End Sub で試してみました。 結果をテキストエディタで開いたところ ああ いい 6/18/04  ←セル書式「日付」にした時 うう ええ 2004/6/18 ←セル書式「文字列」にした時 > 文字列として2004/6/18といった形で入力しているデータが これを確認されては? 「日付」になっているセルは、セルの書式を「標準」にすると数値に変ります。

hiro_sun
質問者

お礼

正にこの、通りでした。 他の3名の方も大変有難うございました!!

その他の回答 (3)

  • pc6001
  • ベストアンサー率23% (3/13)
回答No.3

どうもです. 下記のレスを補足させていただきます. csvで出力ということなので,セルの値を一つずつ読み出し,コンマ区切りでテキストファイルに書き出すことも可能ですよね. 書き出すときにFormat文で厳密にフォーマットを指定してあげれば希望のフォーマットで記録できます. Excelの機能だけでも実現可能なのだとは思いますが, 以前に,Excelのバージョンや設定の関係で,日付関係の実行結果が異なる場合があり,困ったことがありました.そのような場合には,有効な手段だと思いますよ. なお,Excelの機能だけで解決できれば,それで十分だと思います.

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

CELLを読み取ることろ Cells(Row,Col).Text としてもだめ? Format(データ,'YYYY/MM/DD') などもありけり

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

コントロールパネルの地域設定で、日付の表示形式はどうなっていますか? "m/d/yyyy" 形式になっているところはありませんか?

参考URL:
http://www.fwindows.com/tips/tips030404.htm