• 締切済み

VBAでCSVをExcelに取り込む時に、途中の改行を取り除くには

bin-chanの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

CSVを読むのは、テキストファイルとしてOPENしておいて、LINE INPUTですかね? LINE INPUTで読み取った際に受け取る変数を「次工程」にまわす前に、カンマの数を数える。 ・カンマの数が一致するなら、現在の読み取り結果を「次工程」にまわす ・カンマの数が不足するなら、さらにCSV次行を読み、初回の読み取り結果と連結して、カンマの数を数えるところに戻る。 ・カンマの数がオーバーするなら、データ異常で打ち切る。

関連するQ&A

  • VBAでCSV内にある改行を取る方法

    あるシステムが吐くcsvファイルの項目の中に改行が入っているものがあります。 例) 01,aaa,bbb(改行)bbb,ccc(改行) 02,ddd,eee,fff(改行) 03,ggg(改行)ggg,hhh,iii(改行) このCSVファイルをエクセルのマクロで読み込んでシートに展開したい のですが、項目中にある改行で別レコードを認識してしまいます。 結果) A B C D ---+---+---+--- 01 aaa bbb  bbb ccc 02 ddd eee fff 03 ggg ggg hhh iii これを以下のようにしたいのですが・・・ A B C D ---+------+------+---- 01 aaa bbbbbb ccc 02 ddd eee fff 03 gggggg hhh iii どうやればよいでしょうか? ご教授お願いいたします。

  • エクセル マクロVBAの VLOOKUPと条件分岐について

    エクセルのマクロVBAで質問です。 1つのシートに下記のような(1)(2)のデータと 同ブック内・別シートに(3)(4)のデータがあり (1)のデータ内を検索して、 別シート内の置換リスト(3)に値が存在すれば、 (4)の値を(2)に記載し、なければ、(1)の値をそのまま(2)に記載 するという内容にしたいのですが、どうもうまくいきません。 (1)    (2) AAAA ■■■←AAA BBBB ■■■←JJJ CCCC ■■■←CCC DDDD ■■■←GGG EEEE ■■■←UUU FFFF ■■■←FFF 置換リスト(同ブック内・別シート) (3)    (4) BBBB JJJ DDDD GGG EEEE UUU いい方法はないでしょうか。

  • CSVデータをツリー表示させたい

    業務で、WEBサイトにCSVデータを表示させたいと考えています。 CSVデータは、毎日更新されるもので、行数も日々変更されます。 項目の中に「レベル」という項目があり、この「レベル」の値を使って、 ツリー表示出来ないかと考えています。 希望としては、決められたフォルダに決められたファイル名で、 CSVデータを置けば、自動的にWEB上にツリー表示されるという ことです。 J-query等で、これを実現出来るプラグインが無いか探しているのですが、 なかなか希望に合うものが見つからず、困っています。 (CSVをWEB表示するものは見つかるのですが、ツリー表示出来る ものが見つかりません) 何か、良い方法があれば、ご教示頂けませんでしょうか? 例 コード  レベル 品名  規格 ・・・・    コード     レベル 品名  規格 ・・・・  1234    1   AAA   aaa       -1234       1    AAA   aaa 2345    2   BBB   bbb        ∟2345     2    BBB  bbb 3456    3   CCC   ccc          ∟3456   3    CCC  ccc 4567    3   DDD   ddd          ∟4567   3    DDD  ddd 5678    3   EEE   eee           ∟5678   3    EEE  eee 6789    4   FFF   fff             ∟6789  4    FFF   fff 7890    3   GGG  ggg           ∟7890   3    GGG  ggg

  • EXCEL VBA split関数について

    Excel VBA初心者です。 split関数についてどなたか教えていただけないでしょうか。 aaa,bbb,ccc,eee fff,ggg,hhh,iii jjj,kkk,lll,mmm というデータがあるとして、そこから aaa bbb fff ggg jjj kkk これだけ(左から2個分)を抜き取りたいのですが可能でしょうか? カテ違いな質問でしたらスミマセン。

  • エクセルで

    教えてください。2つの表を1つにしたいのです。  あ.xls い.xls aaa 1個 bbb 2個 bbb 2個 ccc 1個 eee 3個    eee 1個 ggg 0個        ↓       う.xls aaa 1個 bbb 4個 ccc 1個 eee 4個 ggg 0個 このような結果を作るにはどうしたらいいでしょうか? 宜しくお願いします。

  • 改行のあるCSVファイルをExcelに読み込みたい

    CSVファイルをExcelにインポートしたいのですが CSVファイルのデータ内に改行が入っていたので、レイアウトが崩れて、 うまくExcelにインポートできない状態です。 改行を置き換えで取り除くと、すべて横並びになってしまいます。 1レコードは59項目と決まっているのですが、手作業で改行を入れるのは 数が多く難しそうです。 なんとかうまく取り込む方法はないでしょうか? プログラミングは全くわかっていない初心者ですが、 エクセルのVBAにコピペして実行することは可能です。。。 カテ違いだったらすみません><

  • Excelで改行が含まれたフィールドをcsvに変換する際改行を取る方法を教えてください

    ExcelをCSVファイルにする必要があり、レコードの形式を "aaa","bbb","ccc"改行コード にしたいいと考えております。(それぞれのフィールドに改行コードは不可) Excelファイル時に、改行を置換(Ctrl+JをNULLで置換)しCSVで保存しエディタで見ると改行が残っています。(CR-LFがCRに置換されているため) 使用しているエディタはEmエディタです。 Accessでインポートしたのちtxtでエクスポートしても結果は一緒でした。 フィールド内の改行だけを取る方法はありますでしょうか。

  • VBAでCSVファイルを分割したい

    VBAを利用して、あるCSVファイルを一定のレコード数ごとに新しいファイルにファイル分割したいです。 やりたいことは、以下のようなイメージです。 関連サイトなどを参考に自分なりに取り組んでみましたが、なかなかうまくいきません。 VBAでなくても実現できそうですが、ここまでやったので勉強のためにもVBAでやりたいです。 サンプルコードなど教えていただけるとうれしいです。 ヒントでも結構ですので、よろしくおねがいします。 (2レコードずつ分割する例) sample.csv ヘッダ1,ヘッダ2,ヘッダ3,ヘッダ4 aaa@aa.aa,123,あいうえ,111-111 bbb@bb.bb,456,かきくけ,222-222 ccc@cc.cc,789,さしすせ,333-333 ddd@dd.dd,012,たちつて,444-444 eee@ee.ee,345,なにぬね,555-555 fff@ff.ff,678,たちつて,666-666 ↓↓↓ ☆sample_1.csv ヘッダ1,ヘッダ2,ヘッダ3,ヘッダ4   →各ファイルにヘッダも入れたいです。 aaa@aa.aa,123,あいうえ,111-111 bbb@bb.bb,456,かきくけ,222-222 ☆sample_2.csv ヘッダ1,ヘッダ2,ヘッダ3,ヘッダ4 ccc@cc.cc,789,さしすせ,333-333 ddd@dd.dd,012,たちつて,444-444 ☆sample_3.csv ヘッダ1,ヘッダ2,ヘッダ3,ヘッダ4 eee@ee.ee,345,なにぬね,555-555 fff@ff.ff,678,たちつて,666-666

  • Excel VBA サブディレクトリの取得について

    Excel VBA についての質問です。 私は、VBAの初心者です。 フォルダ選択ダイアログを開き、あるフォルダを選択させます。 選択したフォルダ配下のファイルとサブフォルダにあるファイル一覧とそのファイルのパス取得したいです。 【例】D:\TEMP\AAA フォルダを選択 D:\TEMP\AAA  D:\TEMP\AAA\BBB\CCC.txt D:\TEMP\AAA\BBB\DDD\EEE.txt D:\TEMP\AAA\BBB\DDD\FFF.txt GGG.txt が存在する。 まず、フォルダAAAまで選択されたら、 以下の結果がエクセルに出力したいです。 BBB         CCC.txt BBB\DDD        EEE.txt BBB\DDD        FFF.txt               GGG.txt うまく伝えないかもしれないですが、ご教授お願いいたします。

  • CREATE VIEWについて

    2つのテーブル(basecodeとaddcode)からVIEWを作りたいのですが、 そのVIEWについてご教授いただきたく。 <TABLE名:basecode> ---------------------- no name area code ---------------------- 1 aaaa 2 102 2 bbbb 4 103 3 cccc 4 203 4 gggg 3 303 5 eeee 3 101 6 ffff 5 104 7 hhhh 1 115 ---------------------- <TABLE名:addcode> ----------------------------------------- base anum bnum cnum dnum dmy no ----------------------------------------- bbbb 1 1 1 1 aaa 2 cccc 12 13 10 2 aaa 3 cccc 12 13 10 0 aaa 3 cccc 12 13 10 5 aaa 3 dddd 12 15 3 1 aaa 3 dddd 12 15 3 3 aaa 3 dddd 12 15 3 4 aaa 3 eeee 10 3 12 1 aaa 5 eeee 10 3 12 2 aaa 5 eeee 10 3 12 3 aaa 5 eeee 10 3 12 4 aaa 5 eeee 13 12 15 3 aaa 5 eeee 13 12 15 0 aaa 5 eeee 13 12 15 1 aaa 5 eeee 13 12 15 2 aaa 5 hhhh 4 3 11 0 aaa 7 hhhh 4 3 11 2 aaa 7 hhhh 4 3 13 2 aaa 7 kkkk 0 0 0 0 aaa 9 ----------------------------------------- VIEWの抽出は以下の通り。  basecodeのno  basecodeのname  basecodeのcode  addcodeのbase  addcodeのanum  addcodeのbnum  addcodeのcnum  addcodeのdnum VIEWの作成条件としては以下の通り。 <条件> TABLE名:basecodeとaddcodeのnoが存在し、かつ、 baseaddのnoが複数あり、baseが同じものは以下で判断  ・anumとbnumとcnumが同一であればその中のdnumが最小であるレコードを抽出  ・anumとbnumとcnumが異なれば別々に抽出 上記より、以下のように抽出したい。 <TABLE名:basecodeview> ----------------------------------------------- no name code base anum bnum cnum dnum ----------------------------------------------- 2 bbbb 103 bbbb 1 1 1 1 3 cccc 203 cccc 12 13 10 0 3 cccc 203 dddd 12 15 3 1 5 eeee 101 eeee 10 3 12 1 5 eeee 101 eeee 13 12 15 0 7 hhhh 115 hhhh 4 3 11 0 7 hhhh 115 hhhh 4 3 13 2 ----------------------------------------------- よろしくお願いします。