• ベストアンサー

excel貼り付け用にcsv編集するには?

vbでダブルクオートを含む文字列をcsv出力し、excelに貼り付けたいです。どうReplaceしたらよい?""Abc@def"@example.com"→""""Abc@def"@example.com

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

  • ベストアンサー
  • tamasub
  • ベストアンサー率77% (7/9)
回答No.1

ダブルコーテーションの出力コーディングするのは嫌ですよねっ(^^;)よくわからないことになりますし・・。 申し訳ございませんが、ご提示して頂いたサンプルの意味が理解がよく理解できていないので、 検討外れの回答になっていたら申し訳ございません。 1. ダブルコーテンションを出力するときは、二つ重ねることが基本です。 ex1) コーディング: "abc""efg""" -->出力結果: abc"efg" ex2) コーディング: """" -->出力結果: " 2. 上記の様な感じになって、文字列連結とかすると、第3者が見て意味不明な状態になります。    っということで、個人的には、扱う文字列に存在しないことが確信できる文字列を仮のダブルコーテーション記号    として、扱いコーディングするのが好きです。    ex) 例えば、ダブルコーテーションを ^|^ としてコーディングし、最後にReplaceで置き換えてあげます。 ex1) コーディング: dim str as String = "abc^|^efg^|^" str = str.Replace("^|^", """") こんな感じにしておくと、ダブルコーテーションの重なりお化けは一か所だけですみます(^^;)    回答になったか心配ですが、何かの参考になれば幸いです。

aichino
質問者

お礼

つたない質問に回答ありがとうございます! ex1) コーディング: dim str as String = "abc^|^efg^|^" str = str.Replace("^|^", """") まさにこれなんです。知りたかったのは・・・ ex1) コーディング: dim str as String = """Abc@def""@example.com" str = str.Replace(???????) このReplaceの???????にどんなコーディングをすれば、strに""""Abc@def""@example.com"が入るでしょうか?ということでした。 これを、カンマ区切りのcsvファイルに出力し、それをExcelに貼るので、その時にセルには "Abc@def"@example.com と入ってほしいためです。 よろしければ、もう少しお知恵をお貸し下さい。

aichino
質問者

補足

最初のお知恵から考えてみて解決しました! str = str.Replace("""", """""""") として、CSV読み込み時に Microsoft.VisualBasic.FileIO.TextFieldParser.HasFieldsEnclosedInQuotes で、区切り形式のファイルを解析する際、フィールドが引用符で 囲まれていればそのまま返すようにしたらうまくいきました。 (またつたない説明ですみません) 夜遅くにご丁寧に回答いただきありがとうございました。

関連するQ&A