- ベストアンサー
エクセルCSVの落とし穴?
VB6.0について質問です。 少し話が複雑なので上手く伝わるか心配です。 いまVBからデータをCSV形式でいったんテキストに保存し、それをExcelに落とすという処理を行っています。 ここで問題なのが、VBからテキストボックスに何かしら入力して格納するときに長文の場合、Enterキーで改行するのですが。 それをCSVでExcelで落とすときに改行を認識してしまい改行しなくていいところで改行を行ってしまいます、、、 これを防ぎたいのですがどのような方法が考えられますでしょうか? お知恵をお貸しください>< よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
TextBboxのテキストを変数に代入するとき、 vbCr vbCrLf vbLf を a = Replace(a, vbCr, "") のように削除できませんか。
その他の回答 (4)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 CSV 書き出し時の処理で、 ・データ内の改行コードを vbLf に置換 -->注)レコード終端は vbCrLf のまま ・フィールド毎にフィールド区切り文字(ダブルコーテーション)で括る とすればいけると思います。 余談ですが、速度面ではテキスト書き出しの方が絶対に早いのだけれど、 OLE オートメーションで EXCEL に直接書き出す方法もあります。
改行をエクセルに読み込みたいのであれば、1列分のデータごとにクオートとカンマで処理すれば、 "aaa","bbb","ccc cc","ddd" "eee","fff","ggg","eee" エクセルで開いたときcccccのデータに改行を含むことができますが、こういう意味かな?
- re13b
- ベストアンサー率58% (18/31)
テキストボックスで改行を入れたものをそのまま CSV で書き出せば、当然のように改行コードが入ると思いますよ。 > 改行しなくていいところで改行を行ってしまいます データ中に改行を入れているのだから、仕方がないです。 CSV に書き出すところで当該文字コードをチェックして、不要なコードを除外すれば良いのではないでしょうか? vbcrを探して埋めてしまうとか・・・ 質問の文意とはあまり関係ないかもしれないのですが > VBからデータをCSV形式でいったんテキストに保存し、それをExcelに落とすという処理 > それをCSVでExcelで落とすときに・・・ という記述が気になります。 おそらく "VBからCSV 形式でファイルに書き出して、それをExcelで取り込む" ということですよね? 一般的には、ファイルなどに書き出すことを「落とす」と表現するものだと思うのですが・・・ 私の勘違いであれば、ごめんなさいです。
- neKo_deux
- ベストアンサー率44% (5541/12319)
> VBからテキストボックスに何かしら入力して格納するときに長文の場合、Enterキーで改行するのですが。 テキスト中に改行があれば入力エラーにしてしまうとか。 -- それとも、改行を容認した上で、上手い事保存、読み込みを行いたい?