今、各セルにX~Zまでのデータが格納される可能性があるとします。
これをcsvで表現するとY,Z,X,X・・・などです。
次に、複数のデータが一つのセルに格納される可能性があります。
YZX,X,Z,YZ・・・などです。
しかし、データYとZは文字列なので、複数並べると一つのデータに見えてしまいます。
この場合、csvで扱おうと思うなら、通常どうするのが一般的ですか?
例えば、XやYの間に半角スペースを入れて
Y Z X,X,Z,Y Z,・・・でしょうか?
よろしくご指導くださいませ。
ExcelからCSVで保存すると、
A「カンマ区切り、データにカンマがあるとダブルクォートで囲む。ダブルクォートはダブルクォートで囲む。」
となります。
ただし、データによりダブルクォートで囲んでいるものと囲んでいないものが混在するので、VBAから読み込む場合には少し手間がかかります。
CSVの標準的なフォーマットは
B「カンマ区切り、全てのデータをダブルクォートで囲む。ダブルクォートはダブルクォートで囲む。」
になると思います。
http://codezine.jp/article/detail/2364?p=1
この場合はExcel以外のアプリケーションからの利用や、前述したプログラムからの読み込みやすさという点では、Aよりもよいと思います。しかし、Bの形式をExcelで開いて保存するだけでAに変わってしまうということが起きます。ExcelVBAでコードを書いた場合、Excelで読み込み処理をして保存するという最後のところをブックのSAVEで対処できなくなります。
ExcelVBAから利用する場合は、AかBかになりますが、読み込みと保存のコードが変わってくるのでコードを書きやすい形式にするのがいいと思います。カンマ以外の特定の文字(空白等)をデータ内の区切り文字として使う場合、文字列にその区切り文字が入る場合があるので難しいと思います。
CSVで扱うなら、CSVで保存すればいいだけでしょう。
また、セルとセルの区切りは、タブになっていますので、
タブを カンマに 置換すればいいでしょう。
ただ、セルの中にカンマがある場合は、セルを ""で 囲まないとダメですね。
いつもありがとうございます!
CSV的には文字列部分を"で囲めばいいと思います。
X,"Y Z",Z,Z
のように。
"で囲めば例えば
X,"Y, Z",Z,Z
の2つ目のデータは、「Y, Z」と,自体をデータに含めることも
できます。
データ中に"自体を含めるときは"を連続させ、例えば
X,"Y, Z","Z""",Z
とします。3つ目のデータは「Z"」として扱われます。
ありがとうございます。"の書き方も参考になります。
ExcelからCSVで保存すると、
A「カンマ区切り、データにカンマがあるとダブルクォートで囲む。ダブルクォートはダブルクォートで囲む。」
となります。
ただし、データによりダブルクォートで囲んでいるものと囲んでいないものが混在するので、VBAから読み込む場合には少し手間がかかります。
CSVの標準的なフォーマットは
B「カンマ区切り、全てのデータをダブルクォートで囲む。ダブルクォートはダブルクォートで囲む。」
になると思います。
http://codezine.jp/article/detail/2364?p=1
この場合はExcel以外のアプリケーションからの利用や、前述したプログラムからの読み込みやすさという点では、Aよりもよいと思います。しかし、Bの形式をExcelで開いて保存するだけでAに変わってしまうということが起きます。ExcelVBAでコードを書いた場合、Excelで読み込み処理をして保存するという最後のところをブックのSAVEで対処できなくなります。
ExcelVBAから利用する場合は、AかBかになりますが、読み込みと保存のコードが変わってくるのでコードを書きやすい形式にするのがいいと思います。カンマ以外の特定の文字(空白等)をデータ内の区切り文字として使う場合、文字列にその区切り文字が入る場合があるので難しいと思います。
ありがとうございます。うまくできそうに思います。
ありがとうございます。うまくできそうに思います。