Excel VBA のCSV書き出し、読み込み処理について分からないことがあります。Excelのセルの文字列中に改行コード(やその他特殊記号)があると、CSV書き出し後にそれをCSV読み込みしたときに元と異なってしまうようです。そこでExcel VBAの処理を書いて対処しようと思っているのですが、うまいコーディング例がありましたら参考URLでも直接ソースを提示していただいても構いません。書き込み、読み出しを複数回しても結果が変わらないようにしたいのです。改行コードの対処方法重視でお願いします。
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
No.1
70pt
そのような場合は、
ダブルクォーテーション「”」(半角)で囲って書き出します。
書き出し例
-------------------------------------
1111,2222,"AAAA[改行コード]BBBB"
2222,3333,"BBBB[改行コード]CCCC"
-------------------------------------
※[改行コード]は改行コードの意です。
エディタで開くと・・・
-------------------------------------
1111,2222,"AAAA
BBBB"
2222,3333,"BBBB
CCCC"
-------------------------------------
※こんな感じになっています。
No.2
60pt
ダブルクォーテーション「"」をVBAでCSVに出力する場合は、
まず、ダブルクォーテーション×2「""」に置換します。
それから、ダブルクォーテーションで囲います。
例
1111 | aaa"bbb |
2222 | ccc",カンマ入 |
は、以下のように出力します。
1111,"aaa""bbb"
2222,"ccc"",カンマ入"
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。
これ以上回答リクエストを送信することはできません。制限について
早速のご回答ありがとうございます。この場合はセル文字列中にダブルクォーテーションがある場合でもうまくいくのでしょうか?どこまで考慮すればというのはあるのですが、多分ここまでは考慮しなければいけないかもしれません。