
EXCELに入力されたデータをCSV出力するプログラムを作成しました。データには日付が入っており年月日がYYYY/MM/DDの形で入力されています。これをハンド作業で名前をつけて保存でCSVに出力すると年月日はそのままの状態で保存されますが、VBAで保存するとMM/DD/YYYYの形になってしまいます。この状態で保存されると、次にEXCELで読み出すと年月日が文字列扱いになってしまいます。新しいマクロの記録で行っても結果は同じでした。
VBAで保存する際、YYYY/MM/DDで保存する方法はないでしょうか。
また、MM/DD/YYYYで保存されたCSVを日付としてEXCELに認識させる方法はあるでしょうか。
教えてください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
#01です。
私のPC(XP Pro+Office2003)でテストを行ったときは、YMD形式で書き込めましたよ。またMDY形式のデータも正しく読み込めました。
となると、Officeのバージョン、マクロ、PC環境などの何かが異なるのでしょう。でも補足にもそれを判断する材料が全く書かれていないので、何とも回答のしようがありません
私がテストしたデータはA列に日付を入力しただけのものです
A列
2008/1/1
2008/1/2
2008/1/3
2008/1/4
以下続く
そのデータに対して
ActiveWorkbook.SaveAs Filename:="C:\Book1.csv" ,FileFormat:=xlCSV ,Local:=True
の1行だけを実行したらどうなりますか?
やはりダメなら先のURLにあるようなPC環境(日付のプロパティ等)も確認してください
読み込みで「文字列になる」も再現しませんのでコメントできません。「データ」→「外部データの取り込み」で読み込む手段もありますから試してみてください。
zap35様
本日ご入力いただきましたマクロ1行のみで行ったところうまく行きました。
昨夜は何度やっても出来なかったのですが・・・。2度もご教授頂き有難うございます。
実際のプログラムにも組み込んで問題の無い事が確認できました。
有難うございました。
No.1
- 回答日時:
Offce2002以降なら
ActiveWorkbook.SaveAs Filename:="Z:\Book1.csv", _
FileFormat:=xlCSV ,Local:=True
のようなマクロで表示形式通りにcsvに書き込めます。
逆にMDY形式(1/3/08)で作成された日付は
Workbooks.Open "Z:\Book2.csv" ,Local:=False
で読み込めばYMD形式(2008/1/3)になります。
下記URLに説明がありますからご覧になってください
http://support.microsoft.com/kb/410237/ja
もし2000以前のバージョンなら文字列に変換してcsvにする方法が紹介されています。
zap35様
ご返答頂き有難うございます。
マクロを自動保存してそのマクロに Local:=True を追加してみましたが、結果は同様にmm/dd/yyyy hh/mmでした。再度EXCELで読んでみましたが文字列のままで変更が出来ませんでした。保存する際のパラメーターで入力の状態が保たれれば一番いいのですが、何らかの手段はないものでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) Excel 数行を1組とする300組ほどあるデータの項目を揃えたいです。 3 2023/01/26 19:38
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
DTOとEntityの差は何ですか。
-
EXCEL VBAでのCSV出力について
-
WordでExcelデータを差込...
-
HTMLへの出力の仕方
-
JavaからPHPへの値の受け渡し
-
Windowsのマクロプログラムで、...
-
CGIでリンクのような…。
-
TCPでデータを受け取ってそれを...
-
Dosブロンプトでtabを出力したい
-
「取得先」という表現について
-
URLのパラメータをGETのままで...
-
shシェルスクリプト 空白行の...
-
二つの条件が不等価の場合の記述
-
EXCEL、マクロ-改ページ行番号...
-
(Win32)ファイルパスから物理ド...
-
VBA コレクションに2次元配列...
-
Sessionの上限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
VisualBasic2010のPictureBoxに...
-
MSFlexGridのデータを初期化し...
-
VB.NET 2017の勉強中です。 今...
-
ActiveReportのサブレポート機...
-
VBA内でのGetPixelを使用した時...
-
GridViewからチェックボックス...
-
INIファイルに一括書き込みを行...
-
ADOを使用してExcelファイルを...
-
★お手上げ状態です。助けてくだ...
-
VB6.0とスプレッドシート
-
EXCEL VBAで NHK NEWSの NEWSデ...
-
Windowsのマクロプログラムで、...
-
エクセルで株価&財務データを...
-
CSVのインポート【ASP.NET】
-
アクセス+VBA 最適化
おすすめ情報