• ベストアンサー

VBAで複数ファイルからのデータ抽出を行いたい。

すみません、知恵をお貸しください。 VBA初心者です。 一つの同じフォルダ内にあるエクセルの同じ形式の複数ファイル(*.xls)から、データを抽出し(例.A2:k2)一つのファイルを作成したいのですが、どうにか一行目だけを抽出することができました。 しかし、データ抽出をしたい複数ファイルの中には(A2:k2)だけではなく、複数行に渡りデータが入っているもの(A3:k3まで、やA5:k5までなど)があり、それら全てを抽出したいのです。 何らかの条件付けの上でループをさせればいいのかな?とも考えたのですが、うまくいきません。 どうかご教授お願いします。

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

  • ベストアンサー
回答No.1
pleasure95
質問者

お礼

ありがとうございます☆ すごく参考になりました^^

関連するQ&A

  • エクセルでフォルダ内にある複数ファイルからデータの抽出と集計をしたいのですが・・・

    検索し、似ている質問・回答を拝見させて頂いたのですが、どうも上手くいかなかったので、再度質問させて頂きます。 現在フォルダ(Aと仮定します)の中にエクセルファイル(**.xls形式で名前は個人名となっており、規則性はありません。)が複数入っております。エクセルファイルは同一フォーマットで作成しており、8つのシートに分かれております。その中に「一覧」というシートがあり、   1 2 3 4 5 6 7 ・・・ A  ** ** ** ** ** ** ** B ** ** ** ** ** ** ** C ** ** ** ** ** ** ** D ** ** ** ** ** ** ** E ** ** ** ** ** ** ** ・ ※12…と列、AB…と行で**は数値になっています。 という形式になっています。 ここで同一フォルダA内に集計用のBというファイルをつくり、そこで複数ファイルの「一覧」シート部分だけのデータを抽出し、集計を行いたいのですが、どの様にすれば宜しいでしょうか?? また、Aフォルダにファイルを増やした時に自動的に集計出来るようにすることは可能でしょうか?? 恐らくVBAを使用しなければならないと思うのですが、私の力だけではどうすることもできません。 是非、知恵をお借りしたいと思いますので、何卒宜しくお願い致します。

  • Excelで複数の他のファイルから、データを抽出

    フォルダに30個~40個のxlsファイルがあり、中身はmmddというシート名で日別に分かれています。 抽出を実行した日(たとえば今日なら0122)と、同じ名前のシートのA1~D4までの文字列データを、 抽出を実行したシートのA1~D4に貼り付け、2個目のxlsファイルから抽出したデータはA6~D9に、3個目はA11~D14に貼り付ける…という風な抽出をしてくれるようにしたいと考えております。 関数かVBAにて処理する方法はありますでしょうか? ご教授願います。

  • VBAでの構築の質問

    VBAの初心者ですが、データの抽出をしたいと考えています。 フォルダの中に、複数のテキストファイル形式のデータがあり、 その中にあるファイル毎の一部データのみ抽出できないかと考えております。 元データ(1)(テキストファイル形式) 10行目にあるデータ A TOKYO 20行目にあるデータ 100 200 1000 2000 (データの間には、スペースがあります。) 元データ(2)(テキストファイル形式) 10行目にあるデータ B Fukuoka 20行目にあるデータ 300 400 3000 4000 (データの間には、スペースがあります。) 編集後のデータは、それぞれのテキストデータ ・10行目データの2番目の抽出 ・20行目データの2番目の抽出 ・20行目データの4番目の抽出 を抽出できないかと考えています。 編集後データ(エクセルファイル形式に出力)は、下記のような感じできないかと考えてます。     (A列) (B列) (1行目)TOKYO Fukuoka (2行目)200 400 (3行目)2000 4000 皆さんからのご回答、 よろしくお願いいたします。

  • VBA 複数ファイルを読み込んで、抽出

    VBA初心者です。どうぞよろしくお願いいたします。 <やりたいこと> 同じフォルダにある複数ファイル(logファイル)を順番に読み込み、 特定の文字が含まれている行だけを、別ファイル(sum.csv)に保存していきたい。 ファイルが多数あるため、VBAで処理できればと思っています。 急いでおり、今回は丸投げになりますが、どなたかコードを教えていただけますと 非常に助かります。 コードを見て、勉強させていただきます。 どうかよろしくお願いいたします。

  • VBAにて複数フォルダのエクセルファイルからデータ抽出を行いたいのですが…

    現在、下記の方法で複数のブックからデータを抽出し、 一覧表示をしています。(一覧表示をしているブックを仮にAとします。) 今のままだと、同一フォルダ内のブックしか抽出されません。 これを、サブフォルダまで対象にするには、どうすれば良いのでしょうか? 簡単に例をあげると、 フォルダ(1)の中にAを入れておいて フォルダ(1)の下にあるサブフォルダ(1)、サブフォルダ(2)の中にあるブックからデータの抽出を行いたいのです。 現在つかっているVBAは Sub 抽出用() Dim FName As String Dim Folder As String Dim wb As Workbook Dim i As Integer, j As Integer Application.ScreenUpdating = False Folder = ThisWorkbook.Path & "\" i = 1: j = 1 Worksheets(1).Cells.ClearContents FName = Dir(Folder & "*.xls") Do While FName <> "" If FName <> ThisWorkbook.Name Then Workbooks.Open (Folder & FName) Workbooks(Workbooks.Count).Worksheets(5).Rows("1:1").Copy _ ThisWorkbook.Worksheets(5).Cells(i + 3, 1) Workbooks(Workbooks.Count).Close Application.StatusBar = j & "ファイル処理済み" i = i + 1: j = j + 1 End If FName = Dir() Loop Application.StatusBar = "" Application.ScreenUpdating = True MsgBox ("完了しました") End Sub です。 いいお知恵があれば、よろしくお願い致します。

  • VBA フィルターで抽出したデータを別のファイルの

    VBA フィルターで抽出したデータを別のファイルのシートのセルにヘッダー行とフッター行のあるシートに挿入したい お世話になります。 excel のフィルターで抽出したデータを別のファイルのシートに抽出したデータと同一フォーマットの入っている原紙がありその原紙をコピーしたシートのヘッダー行(A1-A8)の後、9行目からフッター行の手前、52行めまでに貼り付けするを、フィルターで抽出した分繰り返したいのです。原紙 のシートはコピペでしたに20枚ほど作ってあります。 マクロの記述でコピペを繰り返せば作れそうな気はしますが、汎用性が無いので、また私の頭も固いので。 宜しくお願いします。

  • エクセル:複数ブックをマクロを使い同一条件で集約・抽出したい

    教えて下さい 複数のエクセルブックがあります(全て1フォルダーに集約してある) それぞれA列に日付、B列に金額が入っている 複数あるブックを指定する日付で次から次へと検索しその金額とファイル名を新しいブックに縦に全てコピー(抽出)したい ちなみに、必ず条件にあうデータがそれぞれのブックにあるとは限りません 無い場合もあります 無い場合は特に抽出する必要はありません ========================================================= 例:2007/12のデータを抽出したい ★抽出結果イメージ    A      B    C 1 2007/12   200   ああああ.xls 2 2007/12   300   いいいい.xls 3 2007/12   100   うううう.xls 4   ・      ・      ・ 5   ・      ・      ・ 6   ・      ・      ・ 7   ・      ・      ・ ========================================================= このような場合、マクロでできますか?マクロは初心者です 教えてください よろしくお願いします 複数あるブックとは数的に60とかあります ちなみに現状はファイルを一つ一つ開き、指定日付を検索し見つけだし その行をコピーペーストしています たくさんブックがあるので、これをしていると目がチカチカしてきてしまいます この作業がマクロでできると、すごく感激なのですが・・・ どなたか、お知恵・お力をおかしくださいませ

  • VBAのデータ抽出(間引き)について

    VBAのデータ抽出(間引き)について 当方VBA初心者なのですが、 VBA(EXCEL2007)を使用してグラフ作成をしようと思っています。 元データの書式は以下の通りでデータ行は30秒間隔で 一カ月分(8万行)あります。 2010/08/01 01:00:34     1112.83 2010/08/01 01:01:04     1110.43 2010/08/01 01:01:34     1111.87 2010/08/01 01:02:04     1112.23 2010/08/01 01:02:34     1112.43 2010/08/01 01:03:04     1112.03 2010/08/01 01:03:34     1110.83 2010/08/01 01:04:04     1112.43 2010/08/01 01:04:34     1110.63 ・・・ データ量が多すぎるので間引きしようと思っています。 間引き(抽出)条件は以下の様に考えています。 10行毎(5分毎)に値の最大値の行を抽出して別シートへコピー。 VBAマクロで処理するにはどの様な コードで実現可能でしょうか? 教えて頂きたく。よろしくお願いします。

  • EXCELで複数のファイルから抽出

    Excelのことで困っています。 何かいい方法があれば教えてください。 同じフォームのエクセルファイルが約1000ファイルあり、それぞれのファイルの例えば3~5行目だけを抽出し、別のの新しいファイルにどんどん貼り付けて3~5行目だけを集めたファイルを作りたいのですが、ファイルの数が多いので、全ファイルを開いてコピペする以外にマクロか何かを使って自動で抽出できるような方法がないかと考えております。 1000個のファイル名は今はばらばらですが、必要であれば0001.xls~1000.xlsなどに変更してもよいです。 どうぞよろしくお願いします。

  • 複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。

    複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。 皆様のお知恵をお借りできませんでしょうか? 現在約1000行からなる同一体裁のtxtファイルを多数所持しております。 中身はタブで区切ってあったので、タブをコンマに変換し、CSVファイルを作りました。 これらのファイルを15~20ファイルごとにフォルダ分けしてあります。 このCSVファイルをエクセルで開いたところ、 うちB601:B802に必要な情報が入っていました。 この情報を以下のような要領で入力したまとめxlsファイルを作りたいです。 A列 1行目 一つ目のCSVのファイル名(フォルダ内のCSVを名前順で並べたときに1番上のもの) 2行目~203行目 一つ目のCSVのファイルのB601:B802 B列 1行目 2つ目のCSVのファイル名(名前順で2番目のもの) 2行目~203行目 2つ目のCSVのファイルのB601:B802 (以後15~20ファイル分、O~T列まで。20ファイル以上にも対応できると嬉しいです。) このxlsファイルを最低でも20個作る予定です。 VBAマクロできっと出来るはずと思い、昨日9時間ほど調べたのですが、習得には至ってません。 例えば1つのCSVのB601:B802をコピーするマクロは作成できますが、 それをまとめファイルのA2に貼り付け、 まとめファイルのA1にCSVのファイル名を挿入し、 さらに同様の抽出をフォルダ内の別のファイルに連続して行い、 挿入部位が被らないようにまとめファイルB列以降に貼り付けさせることができません。 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv252.htmlや http://oshiete1.goo.ne.jp/kotaeru.php3?q=359726や http://www.excel.studio-kazu.jp/kw/20080428180002.htmlなどを 応用できないか試してみましたが結局よくわからない状態です。 おそらくこちらの説明が不十分で答えにくい質問なのではないかと思いますが、 どなたかお答えいただければ幸いです。 また、勉強してから出直せ!的なことであれば勉強したいとおもいますので、 お勧めの書籍、サイトを教えていただければ幸いです。 どうかよろしくお願いいたします。

専門家に質問してみよう