• ベストアンサー

エクセルCSVの落とし穴?

VB6.0について質問です。 少し話が複雑なので上手く伝わるか心配です。 いまVBからデータをCSV形式でいったんテキストに保存し、それをExcelに落とすという処理を行っています。 ここで問題なのが、VBからテキストボックスに何かしら入力して格納するときに長文の場合、Enterキーで改行するのですが。 それをCSVでExcelで落とすときに改行を認識してしまい改行しなくていいところで改行を行ってしまいます、、、 これを防ぎたいのですがどのような方法が考えられますでしょうか? お知恵をお貸しください>< よろしくお願いします。

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

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

TextBboxのテキストを変数に代入するとき、 vbCr vbCrLf vbLf を a = Replace(a, vbCr, "") のように削除できませんか。

その他の回答 (4)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

こんにちは。KenKen_SP です。 CSV 書き出し時の処理で、 ・データ内の改行コードを vbLf に置換  -->注)レコード終端は vbCrLf のまま ・フィールド毎にフィールド区切り文字(ダブルコーテーション)で括る とすればいけると思います。 余談ですが、速度面ではテキスト書き出しの方が絶対に早いのだけれど、 OLE オートメーションで EXCEL に直接書き出す方法もあります。

noname#60992
noname#60992
回答No.4

改行をエクセルに読み込みたいのであれば、1列分のデータごとにクオートとカンマで処理すれば、 "aaa","bbb","ccc cc","ddd" "eee","fff","ggg","eee" エクセルで開いたときcccccのデータに改行を含むことができますが、こういう意味かな?

  • re13b
  • ベストアンサー率58% (18/31)
回答No.2

テキストボックスで改行を入れたものをそのまま CSV で書き出せば、当然のように改行コードが入ると思いますよ。 > 改行しなくていいところで改行を行ってしまいます データ中に改行を入れているのだから、仕方がないです。 CSV に書き出すところで当該文字コードをチェックして、不要なコードを除外すれば良いのではないでしょうか? vbcrを探して埋めてしまうとか・・・ 質問の文意とはあまり関係ないかもしれないのですが > VBからデータをCSV形式でいったんテキストに保存し、それをExcelに落とすという処理 > それをCSVでExcelで落とすときに・・・ という記述が気になります。 おそらく "VBからCSV 形式でファイルに書き出して、それをExcelで取り込む" ということですよね? 一般的には、ファイルなどに書き出すことを「落とす」と表現するものだと思うのですが・・・ 私の勘違いであれば、ごめんなさいです。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> VBからテキストボックスに何かしら入力して格納するときに長文の場合、Enterキーで改行するのですが。 テキスト中に改行があれば入力エラーにしてしまうとか。 -- それとも、改行を容認した上で、上手い事保存、読み込みを行いたい?

関連するQ&A

  • VB2008でのテキストボックスからCSVへの入力について

    はじめまして、VB2008初心者です。 テキストボックスで入力した長文(改行含む)をcsvの形式で保存するというプログラムを作っています。 今は、改行したところでセルを一行改行してしまいます。 そこで、テキストボックスの内容を代入したaという変数を改行も正確に1つのセル中に収めて保存したいです。つまりエクセルでAlt+Enterをしたときと同じように改行したいです。 あちこち、過去スレも検索したのですがうまくいきません。 ↓今自分なりに考えてこの状態です。 a = a.Replace(vbCrLf, "\") a = a.Replace("\", Chr(10)) 何とか助けていただけませんでしょうか。 使ってるソフト:VB2008Express Edition チェック済みのHP: ◆http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q147176499 ◆http://www.accessclub.jp/bbs3/0008/superbeg3570.html

  • エクセル2010 CSVレイアウト崩れ

    「よくある質問」とはちょっと違うと思います。 あるCSVファイルを、そのままダブルクリックするとエクセルで開いてくれるPCがあります。 そのようにして開くとレイアウト崩れはありません。 で、同じCSVファイルをエクセルの「データ」→「外部データの取り込み」→「テキストファイル」で読み込むと、レイアウトが崩れてしまうのはなぜでしょうか。 なぜこのような質問をするのかというと、ちょっと説明が難しいのですが、なるべく簡潔に箇条書きにしてみます。 1 まず、このCSVファイルは自社で使っているオリジナルのシステムがCSV形式で吐き出すファイルであるという事実 2 このファイルは、ところどころ長文があり、セル内で改行が必要。なので長文の部分はダブルクォーテーションで改行を含め全体を囲んである。 3 従来はCSVファイルをそのままダブルクリックして開いて、内容をチェックする時、担当者がエクセル上でセル幅や高さをマウスで調節して文章を読んでいた。なお、その際にレイアウト崩れは発生したことがないので、もともとのファイルのCSV形式はちゃんと整って吐き出されているものと思われる。 4 しかし、いちいち手動でそんなことをするのは大変だろうと、私がマクロでCSVファイルを読み取り、自動的にセル内の文章を全部表示できるサイズに各行や列を自動調節できるようにしたいと考えた。 5 具体的には、まずマクロを記録したエクセルファイルを開き、そこから次のシートに当該のCSVファイルを読み取らせればよかろうと考えた。 6 ところが、シートにCSVファイルを読み込ませるために冒頭のような読み込み作業を行ったら、同じエクセルの同じバージョン、同じPCなのにも関わらず、レイアウトに崩れが生じた。 7 具体的にどの部分でレイアウト崩れが起きているのかをテキストエディターで調べると、やはり長文内の改行部分で次のセルに移動してしまっている。 8 しかし、改行部はダブルクォーテーション内に収まっており、(そうでなかったらCSVファイルを直接ダブルクリックしてエクセルを開いた際にもレイアウト崩れが生じていたはず)自分でも訳がわからなくなる。 9 つまり、CSVファイルをテキストデータとして読み込んだ際、設定で「カンマでセル移動、ダブルクォーテーションを「文字列の引用符」に指定しているにも関わらず、エクセルがダブルクォーテーションを無視しているとしか考えられない 10 なぜこのような違いが同じエクセルで生じるのかがわからない 11 いろいろ調べると、「ひょっとして改行コードの解釈の問題(例のLF+CRの問題)か?もしくはダブルクォーテーションのコードの解釈の違いがあるのか??」と思い当たる。 …と、以上のような経緯があったわけです。 それにしても不可解な話なので、どなたかエクセルに詳しい方の解説がいただけたらなあ…と思うのですが、いかがでしょうか。 もしくはどこかに、「一発でCSVファイルを正しく読み込んでくれるモジュールがあるよ」的なアドバイスをいただけると非常に助かります。 よろしくお願いいたします。長文失礼いたしました。

  • CSV形式で編集された項目をVBからEXCELシートへ編集し印刷

    CSV形式で編集したテキスト項目(7項目,300行)を、EXCELファイルへ編集し、印刷する方法を教えて下さい。(VBでEXCELシートへ編集し印刷したが、編集から印字までの処理時間が大きいため、帳票データをCSV形式化し、処理速度を高速化したい)簡単なサンプルがあれば助かります。 処理の概要は、以下の通り。 (1)VBで、CSV形式のテキストファイル作成後、 (2)VBからEXCELファイルを開いて (3)CSVのテキストファイルをEXCELシートへ編集 (4)VBから印刷プレビューを出し (5)印刷指示することで 全て、VBから制御する方法

  • 【VAB】 エクセルファイルからCSVファイルをインポートするには

    お世話になります 実行可能か、わからず質問させて頂きます。 ■概要 ・CSVファイルをエクセルファイルにインポートしたいです ■設置 ・ユーザーフォームにテキストボックス、参照ボタン、実行ボタン を生成 ■動き ・参照ボタンをクリックするとダイアログボックスでCSVを選ぶ ・選んだあて先がテキストボックスに記載される ・実行ボタンでCSVをエクセルのシートに貼り付け (このとき貼り付ける列はVB内で決めておきたい、1,4,5,6,9列を貼り付けるなど) わかる方ご教授よろしくお願い申し上げます

  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • vbからのCSV出力について

    VB6.0について質問です。 CSV出力でデータ数がエクセルの限界を超えそうなので 統計ソフトのSPSSというソフトを使おうと思うのですが VBからSPSSへの連携はできるのでしゅうか? 現在、データをカンマ区切りで変数に格納し拡張子をCSVにして出力すると 自動的にCSVファイルが作成されますが SPSSでCSV出力させるにはどうやればよいですか? 当方SPSSは触ったことがないのでお知恵をお貸しください++

  • csv形式のテキストファイルをexcelでCSV化するマクロについて

    今、ひとつのフォルダに大量にCSV形式で保存されているテキストファイルを excelのマクロを使って、ひとつのexcelにCSV形式(.xls)で保存するものを作成している のですが、今までマクロを使ったことがないため、まったく歯が立ちません。 もう少し詳しく書くと、テキストファイルの中身は、 01,54521,18:01:02,110230 というようになってます。 これを、excelのマクロを使い、カンマ区切りで取り込むような感じです。 すみませんが、回答お願いいたします。

  • Access2003で特定列の改行コードを削除してCSVへエクスポート

    またまた、質問させていただきます^^; Access2003にてCSVデータを一旦インポートして、クエリなどを使いデータを編集し、別のテーブルへ追加クエリを使用して吐き出し、そのテーブルのデータ全てをCSVファイルへエクスポートする、といった処理をしております。 はじめに取り込むCSVデータが、セル内(エクセルの編集画面でたとえさせていただきます)で沢山改行されているデータで、それをアクセスに取り込むと改行は一旦なくなったように、見えるのですが、エクスポートするとやはり改行コードが着いたままエクスポートされます。 この改行コードをAccessの処理で削除したいのですが出来るのでしょうか?CSV内の改行全てを削除するのではなく、特定列内(例えばC列など)のセル内の改行コードのみの削除です。 エクセルのClean関数なども試しましたがAccessの処理で一括してしまいたいのです。 TeraPad、秀丸などのテキストエディタで改行コードの置換をすると全て消えてしまい、CSVの行を意味する改行コードまで消えてしまうので使えないし。。。 皆様、お知恵をおかし下さい!お願いします。

  • csvファイルのデータの一部を取り出したい

    こんばんは。 VBでcsv形式のファイルの一部を取り出したいのですが、 例えば、下の3 行、3 列のデータが CSV 形式で保存されているファイルで First Name,Last Name,HireDate Nancy,Davolio,10-22-91 Robert,King,10-23-91 その中の"Nancy"だけを取り出して、テキストボックスに入れたいのですが 一部だけ取り出すことってできるのでしょうか? 教えて下さい。 よろしくお願いします。

  • エクセルでEnterキーが効かなくなる現象について

    エクセルでEnterキーが効かなくなる現象について エクセル2007で入力フォームを作りました。テキストボックスにデータを入力しEnterキーを押すと、 次のテキストボックスへ移動します。この動作が、たまに、Enterキーを押しても次のテキストボックスへ 移動しなくなります。(他のパソコンでも同じようになります) 理由がわからない為、エクセルを閉じて、再度起動してみたり、パソコン自体を再起動したりすると、正常に動くのですが・・・(1度、VBAの画面で動かすとまた正常になります) どなたかぜひ助けてください。 よろしくお願いします。