アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel上で
S(1,1)
S(2,1)
S(1,2)
S(2,2)
と書いたデータをテキスト(タブ区切り)で保存し、そのファイルをテキストエディタで表示させると
"S(1,1)"
"S(2,1)"
"S(1,2)"
"S(2,2)"
といった感じでデータに""が追加されてしまいます。

恐らく()がある事で数式なのか文字なのかを判別する意味でExcelが勝手に付けたものだと思われるのですが、この""を無くす方法はありませんでしょうか?

A 回答 (3件)

原因は括弧「()」ではなく、カンマ「,」だと思います。


テキストの区切り文字としてタブやカンマが良く使われますので、区切り文字ではないということを明確にする為にExcelが「"」で囲っているのでしょう。

どうしても「"」を付けたくないのでしたら、マクロでテキストに出力してやるしかないと思われます。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
『区切り文字ではないということを明確にする為にExcelが「"」で囲っているのでしょう』
という記述で納得しました。他に方法が無いようでしたらVBAでテキスト出力させる方法について調べてみます。

お礼日時:2008/10/29 12:41

タブ区切りの内容に[,]が含まれているため、


S(1,1),S(2,1)・・・だと区切りが判らなくて、たとえできても利用できなくなります。
Perlをお持ちなら、Excellの書き出す独特のCSVを処理するコードが色々あります。
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。

『S(1,1),S(2,1)・・・だと区切りが判らなくて、たとえできても利用できなくなります』とありますが、何に利用出来なくなるのでしょうか?

ちなみに、テキスト(タブ区切り)で保存したデータはC言語で動作する別ソフトにインポートさせる予定です。テキストエディタなどで『"』を空白に置換し直すという方法もあるのですが、出来れば作業はExcel(VBA含む)内で完結させたいと考えています。

お礼日時:2008/10/29 23:07

『S(1,1),\nS(2,1)\n・・・だと区切りが判らなくて、たとえできても利用できなくなります』とありますが、何に利用出来なくなるのでしょうか?


 S(1,1),\nS(2,1),\n
 これってどこで区切るのですか?改行もコードです。さて・・・

 Excellは、セルの内容に,や改行などおよそセルに入るものすべてにおいて、,で区切って混乱しないように処理したものを出力してくれます。
 ですから、Excellが出力したCSVを他のアプリケーションで処理するためには、処理する相手側(貴方の場合Cで)でそれ(Excellのアルゴリズム)を理解して処理するべきです。
・値に,や"、改行がない場合は,で区切られている。
・値に,や"、改行が含まれる場合は""でくくり,で区切る
 このとき値に"があるとそれは"でエスケープされ""となる。
・値に改行が含まれる場合は結果的に一行の"が奇数個になるのでね次の行を加える。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!