• 締切済み

Excelのcsv形式への書き出しについて

Excelデータをcsv形式で保存したとき、データにカンマが入ったときは 勝手に""でくくってくれますが、空白が入った場合も同じようにできないでしょうか?

みんなの回答

  • Wesley
  • ベストアンサー率33% (1/3)
回答No.4

エクセルとCSVファイルの関係については、CSVコンバーターを使うことも1つの方法だと思います。 「フリーソフト + CSVファイルコンバーター」で検索すればいくつかでてきます。 私の使っているコンバーター(下記URL参照)では、空データを””で「囲む」、「囲まない」の選択ができそうですのでよかったら試してください。

参考URL:
http://myfrog.m78.com/index.shtml
noname#19399
質問者

お礼

ご回答ありがとうございました。CSVコンバーターというソフトがあるんですね。知りませんでした。教えていただいたソフトでは、スペースが入っていた場合は囲むという指示はできないようですが、探せば例外処理もできるソフトがありそうですね。検索してみます。

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

旧Basic系のステートメントに「Write #」というのがあります。これをVBAで使ってCSVファイルを作ると、「数値の時はカンマを、ストリング(文字列)の時は引用符をつけて出力してくれるので、お望みのものになるかもしれません。例、1,3,"あいう","本田",34(復帰改行)

noname#19399
質問者

お礼

回答ありがとうございました。この方法は文字列すべてに""がついてしまうのでしょうか?スペースが入ったときだけついて欲しいのですが、やはり難しいですよね…。

  • ppmi
  • ベストアンサー率28% (40/139)
回答No.2

はじめまして カンマは制御文字なので、データの中にカンマがあれば  支障きたすので、ダブルコーテーションでくくり  ますが、 スペースは制御文字ではないので、普通の文字として  扱われていいんじゃないですか それとも、なにか理由あって、わざわざ””でくくり たいのでしょうか 主題からはずれるかもしれませんが  Perlを使うと、自由自在に加工できるのですが 下記はPerlの解説です

参考URL:
http://www.din.or.jp/~hideyuki/home/cgi.html
noname#19399
質問者

お礼

Rubyはちょっとかじりましたが、Perlはややこしそうで敬遠しておりました…(^^; できればExcelで質問内容が解決できればいいなあと思っていたので質問したのですが、Excelではできないのでしょうね。 回答ありがとうございました。

noname#13376
noname#13376
回答No.1

空白というか「何もない」場合ですよね? 今CSVで保存して確認しましたが、確かにデータが何も入っていないとそうなりますね。 正式なやり方があるかもしれませんが、私ならこうします。 A.第一フィールド(A列)と最終フィールド以外のとき  出力されたCSVファイルをテキストエディターで読み込みます。  それから置換で「,,」を「,"",」に換えます。 B.第一フィールド(A列)と最終フィールドのとき ・改行コードが使えるエディタの場合  -第一フィールドの場合   置換で「\n,」を「\n"",」とします。  -最終フィールドの場合   置換で「,\n」を「,\n""」とします。 ・改行コードが使えないエディタの場合  あらかじめ、第一フィールドと最終フィールドの端に、1列ずつ空のフィールドを挿入して、Aと同じことをします。  それから最初の,と最後の,を列削除などでエディタで削除します。 ~~~~~~~~ って、面倒ですね。これ。 ごめんなさい。

noname#19399
質問者

お礼

回答ありがとうございました。 やっぱり、Excelの仕様ということでコツコツと直していくしかないのでしょうね。

noname#19399
質問者

補足

言葉が足らず申し訳ありません。 データが何も入っていない場合は何も無くてよいのですが、例えば 「あいう えお」という文字の場合、「"あいう えお"」としたいという意味です。