• ベストアンサー

エクセルのCSV保存

CSVの "あああ","いいい","ううう","えええ" というデータをExcelで呼び出してCSVで再保存をかけると あああ,いいい,ううう,えええ という様にダブルフォーテーションが消えてしまうのですが、元の形式で再保存するためにはどうしたらよいのでしょうか?

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

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

普通にやったらできません。 でも、項目にカンマが含まれていると「"」で囲ってくれますので、この特性を利用できると思います。 保存する前に、新しいワークシート(Sheet1)を作成して、Sheet1のA1に、「=元のシート名!A1 & "@,@"」と式をいれ、縦横にコピーします。 保存するときはこのSheet1を選んでから「名前を付けて保存」で、元のファイル名とは別名(例:変更後.CSV)でCSV形式で保存します。 変更後.CSVをテキストエディタで開き、「@,@」を空欄に置換します。 ・・・と、こんな方法しか思い浮かびませんが。 頑張ってくださいヽ(^。^)ノ

souta_n
質問者

お礼

Excelのデフォルトの機能にはありませんか 変更があったらワードパッドで開いてやるようにします。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

VBAで 標準モジュールに貼りつけて実行。 ファイル」名は変える。 Sub test01() Open "c:\My documents\aaa18.csv" For Input As #1 Open "c:\My documents\aaa19.csv" For Output As #2 While Not EOF(1) Line Input #1, a b = Split(a, ",") s = "" For i = 0 To UBound(b) If IsNumeric(b(i)) Then s = s & b(i) & "," Else s = s & """" & b(i) & """" & "," End If Next i s = Left(s, Len(s) - 1) Print #2, s Wend Close #1 Close #2 End Sub 原データ 12,ass,dfg,34 23,wer,s,346 結果 12,"ass","dfg",34 23,"wer","s",346 結構面倒だと言うのが感想。

souta_n
質問者

お礼

ありがとうございます。 >結構面倒だと言うのが感想。 あはは・・・そうですねコーディングは理解できるんですけど今VBAモードじゃなくて頭がPerlモードなんで(PerlでCSVファイルの読み書きのプログラミング中DataをExcelでいじろうと思ったら、この問題にぶちあったたもので質問しました) 又なんぞの時に役に立ちそうなコードです。 とりあえずワードパッドで開きます。

関連するQ&A

専門家に質問してみよう