• 締切済み

VBAでのcsvファイルの読込み方法

VBAを始めたばかりの新参者ですが、どうぞ宜しくお願いいたします。 csvファイルのデータの読込み方をご教示お願いします。 【csvファイルの内容】 "A行DATA1","A行DATA2","A行DATA3","A行DATA4","A行DATA5"・・・,"A行DATA10" "B行DATA1","B行DATA2","B行DATA3","B行DATA4","B行DATA5"・・・,"B行DATA10" "C行DATA1","C行DATA2","C行DATA3","C行DATA4","C行DATA5"・・・,"C行DATA10" (中省略) "Z行DATA1","Z行DATA2","Z行DATA3","Z行DATA4","Z行DATA5"・・・,"Z行DATA10"です。 (""併用カンマ切りで、Dataの型はStringです) 【やりたいこと】その(1) A行DATA3だけとかP行DATA5だけとか特定のデータを取り出して いくつかのラベルのCaptionやテキストBoxのテキストにしたいです。 【やりたいこと】その(2) A行DATA2からZ行DATA2のデータをひとつのCombBoxのAddItemにしたいです。 【やりたいこと】その(3) A行DATA2からA行DATA10のデータをそれぞれText2.text~Text10.Textに WhileやFor等を使って入れていきたいです。 (A行DATA2→Text2.text、A行DATA3→Text3.text、・・・A行DATA10→Text10.text) 最終的にはZ列DATA10まで回したいです。 どうぞ回答の程宜しくお願いいたします。

みんなの回答

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

>新しい同じ名前のBookが作られただけでセルには何も入っていませんでした ファイル名が間違ってないでしょうか?(拡張子とかフォルダー名とか) >csvファイルを必要な時に必要な分だけ読込み、値を変数として取り扱いをしたいのです。 テキストファイルとして読み込むと云う事ですね   Open "ファイル名" For Input As #1   Input #1, x 'x は変数 Input で読み込むと、1データー分ずつ読み込まれます Line Input で読むと、1行分が読み込まれます

Project_D
質問者

お礼

自分なりに検索して結果Split関数で,識別して みんなバラバラにに配列へ格納しました。 まだまだ完成ま先は遠そうですががんばります。 ありがとうございました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

csv の読み込みは Workbooks.OpenText Filename:="ファイルネーム",DataType:=xlDelimited,Comma:=True です これで、各セルに振り分けられますので、後は自由に加工できます ファイルへの書き出しは Open "ファイルネーム" For Output As #1 Do While (又はFor)   --   Print #1,(書き込みデータ)   -- Loop (又はNext) です 書き込みが終わったら、 Close #1 しておきます

Project_D
質問者

お礼

早速のご回答ありがとうございます。 【Workbooks.OpenText Filename:="ファイルネーム",DataType:=xlDelimited,Comma:=True】 Editerに記述して実行しましたが「ファイルネーム」と同じ名前のシートが入った 新しい同じ名前のBookが作られただけでセルには何も入っていませんでした。 それと舌足らずでしたが、シートを使わず、ほとんど全てをEditerで記述し最終の結果だけ シートに反映したいのです。 csvファイルを必要な時に必要な分だけ読込み、値を変数として取り扱いをしたいのです。 ご回答頂いたのに大変恐縮しております。すみません。 なお、質問内容「その(2)」はA行DATA2からZ行DATA2の様な特定の1列の読込みを したいと言う補足を追加させて頂きます。