Excel VBA のCSV書き出し、読み込み処理について分からないことがあります。Excelのセルの文字列中に改行コード(やその他特殊記号)があると、CSV書き出し後にそれをCSV読み込みしたときに元と異なってしまうようです。そこでExcel VBAの処理を書いて対処しようと思っているのですが、うまいコーディング例がありましたら参考URLでも直接ソースを提示していただいても構いません。書き込み、読み出しを複数回しても結果が変わらないようにしたいのです。改行コードの対処方法重視でお願いします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2006/08/17 00:50:30
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:llusall No.1

回答回数505ベストアンサー獲得回数61

ポイント70pt

そのような場合は、

ダブルクォーテーション「”」(半角)で囲って書き出します。


書き出し例

-------------------------------------

1111,2222,"AAAA[改行コード]BBBB"

2222,3333,"BBBB[改行コード]CCCC"

-------------------------------------

※[改行コード]は改行コードの意です。

エディタで開くと・・・

-------------------------------------

1111,2222,"AAAA

BBBB"

2222,3333,"BBBB

CCCC"

-------------------------------------

※こんな感じになっています。


id:eimu

早速のご回答ありがとうございます。この場合はセル文字列中にダブルクォーテーションがある場合でもうまくいくのでしょうか?どこまで考慮すればというのはあるのですが、多分ここまでは考慮しなければいけないかもしれません。

2006/08/12 09:10:25
id:llusall No.2

回答回数505ベストアンサー獲得回数61

ポイント60pt

ダブルクォーテーション「"」をVBAでCSVに出力する場合は、

まず、ダブルクォーテーション×2「""」に置換します。


それから、ダブルクォーテーションで囲います。


1111aaa"bbb
2222ccc",カンマ入

は、以下のように出力します。

1111,"aaa""bbb"

2222,"ccc"",カンマ入"


id:eimu

回答ありがとうございます。つまり、上記2つの処理を組み合わせればいいというわけですね。。。あとは具体的なソースとかURLがあればいいのですが。。。

2006/08/16 01:43:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません