• ベストアンサー

複数のエクセルファイルとシートからデータ抽出したい

すみませんが教えてください! 複数のエクセルファイルがあり、それぞれに複数のシートがあります。 (ファイルによってシート数は異なります) そのすべてのファイル/シートから、C列の最後の行のデータを抽出し、集計ファイルに書き出したいのです。 書き出しのフォーマットは3セル使用して、ファイル名、シート名、データとしたいです。 すみませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

集計用のブックを用意する Sheet1のA1、B1、C1セルに「ファイル名」「シート名」「データ」と記入しておく 集計ブックを、あなたの「複数のエクセルファイル」が放り込んであるフォルダに一緒に保存しておく 改めて集計ブックを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1()  dim myPath as string  dim myFile as string  dim w as worksheet  mypath = thisworkbook.path & "\"  myfile = dir(mypath & "*.xls*")  application.screenupdating = false  do until myfile = ""   if myfile <> thisworkbook.name then    workbooks.open mypath & myfile    for each w in workbooks(myfile).worksheets    with thisworkbook.worksheets("Sheet1").range("A65536").end(xlup).offset(1)     .value = myfile     .offset(0, 1) = w.name     .offset(0, 2).value = w.cells(w.rows.count, "C").end(xlup).value    end with    next    workbooks(myfile).close false   end if   myfile = dir()  loop  application.screenupdating = true end sub ファイルメニューから終了してエクセルに戻る ALT+F8を押してマクロを実行する。

kenkenkenpa
質問者

お礼

ありがとうございます! やりたいことが100%できました! コードを確認して自分でも書けるように頑張ります!

関連するQ&A

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

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

  • VBAにて、複数シートからデータを抽出

    エクセルVBAです。複数のシートからの集計、抽出の書き方について教えてください。 1つのファイルに50ほどのシートがあります。 各シートの列数やフォーマットは、同じですが行数は、異なります。 例 sheet1(シート名:集計):集計用   A    B    C       D     1 ※検索キーワードを入れるセルや 2   マクロを登録するボタン用として2行開けてある。 3 番号 氏名  郵便番号  住所  sheet2(シート名:STU)   A    B    C       D      1 番号 氏名  郵便番号  住所  2  1  AB   345    YZ 3  1  CD   678    QS sheet3(シート名:XYZ)   A    B    C       D      1 番号 氏名  郵便番号  住所  2  2  AB   345    YZ 3  2  CD   678    QS 4  3  CD   678    QZ 抽出前は、上記の様なファイルとなっております。 上記では、4列としてますが実際は、23列あります。 また、sheet3までですが、実際は、40~100シート位あります。 sheet1(シート名:集計):集計用   A    B    C       D     1     ※検索キーワード:氏名_CD としマクロを実行する  2       (↑例として氏名でフィルタリングしてますが他の指定項目でも実行したい、複数条件は、無)   3 番号 氏名  郵便番号  住所 4  1  CD   678    QS    (←sheet2(シート名:STU)の3列目) 5  2  CD   678    QS  (←sheet3(シート名:XYZ)の3列目) 6  3  CD   678    QZ  (←sheet3(シート名:XYZ)の4列目) ・  ・  CD    ・      ・ (←sheet4(シート名:・・・)の・列目) ・  ・  CD    ・      ・ (←sheet10(シート名:・・・)の・列目) ・ ・  CD    ・      ・ (←sheet27(シート名:・・・)の・列目) ・  ・  CD    ・      ・ (←sheet27(シート名:・・・)の・列目) ・ ・  CD    ・      ・ (←sheet30(シート名:・・・)の・列目) 上記の様にすべてのシートから氏名:CDでフィルタリングし集計シートに抽出したい。 よろしくお願いいたします。

  • 複数のエクセルブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

  • 複数シートからのセルの抽出

    複数シートからのデータの抽出をしたいのですが、教えてください。 [処理] あるEecelBookに含まれる全てのsheetに対して、シートの1行目とA列のあるセルの値が1995または1996である場合はその当該行をコピーし、新しく作ったsheetに集計する。 説明が下手で住みませんが、よろしくお願いします。

  • エクセルで抽出した不特定数のデータを行数の決まった別シートに取り込む方法を教えてください

    エクセルでマクロを作り始めた初心者です。 Sheet1に、氏名、住所、TEL、会社名、担当者、金額・・・と続くデータが6000レコードほどあります。(レコードは随時増えていきます) Sheet2では、担当者名を条件にSheet1から必要な列(上記に記載したもの5つ)のみを抽出するマクロでデータを取り出すようになっています。 抽出したデータをsheet3のフォーマットに氏名、住所、金額の列だけ入れるのですが、入れられる行が20行と決まっており、最後の行には、合計欄が入るようになっています。 不特定数のレコードを20行ごとにページを区切って印刷するにはどうしたらよいでしょうか。ご教示お願いします。

  • 複数シートからデータを抽出したい

    教えてください。 複数のシートから同じデータを抽出したいのです。 各々シートの行、列データは等しくない状態となっております。 4行目から○○を検索し、一致するものがあれば”固定のB列”と一致した列を抽出する、をシート2、3と繰り返して統合されたシートを完成させる、という流れにしたいのですが最終行の取得、そこから続きにコピーというイメージまではわかるのですが固定のB列と一致した列を抽出させる方法がわからないのです。 どのような処理で実行できるでしょうか?

  • ディレクトリ内にある複数のエクセルファイルデータを抽出したいです。

    ディレクトリ内にある複数のエクセルファイルデータを抽出したいです。 ディレクトリ内にある複数のエクセルファイルがあります。 各ファイルのSheet1の列Aと列Bと列Cと列Gと列Hのデータをインポートして1つのエクセルファイルにエクスポートしたいと考えています。 こういうことをマクロで実現することはできますでしょうか。

  • EXCELで複数ファイルのセル抽出マクロ

    EXCELで複数ファイルのセル抽出マクロ いつもお世話になっております。 首題の件ですが、複数のEXCELファイル約100個があるフォルダに入っています。 フォーマットは統一されていますが、記載してあることは別です。 特定のセルの内容を抽出し、別のEXCELブックに保存したいと考えております。 例) パス-D:\集計\ ファイル名-統一されていません シート名-アンケート(統一している) 抽出したいセル-A1:A10とC10:C20(結合されているセルもあります) できれば保存するEXCELブックに抽出したA1の全集計結果をA1に、 抽出したC10の全集計結果をC10に保存したいのです。(1ファイルずつ改行を入れて) マクロを検索して調べてみたのですが、自分の環境に合わせてみるとうまく動かなく、 (単に私の勉強不足ですが・・・)お手上げ状態です。 皆様、宜しくお願いします。 また、厚かましく下記にも別件で質問をしております。 お力添え頂ければ幸いです。 http://okwave.jp/qa/q6170791.html

  • 複数のエクセルファイルからのデータの抽出、一覧の作成について

    エクセルでのデータ整理の件で以下の質問があります。 以下のことができるようなマクロは組めませんでしょうか? 同一フォルダ(仮に、「C:\Sample」とします)に日々の業務データが 入力されたエクセルファイルが300個ほどあります。 各ファイル内にはSheetが5枚あり、各ファイルで入力されているデータは すべて同一のフォーマットです(Sheet毎では異なる。 例えば、Sheet1の1行A列には日付データ、Sheet2の2-5行B列には名前データ、といった感じです)。 これら300個のファイルから、これまでのデータを一覧にしたリストを 新規に作りたいと考えています(作成場所はどこでも構いません)。 例えばSheet1の、1列目にはファイル名、2列目には各ファイルSheet1の1行A列の日付データ、 3-6列目には各ファイルSheet2の2-5行B列の名前データ・・・、といった具合です。 (縦に日付が並び、1行内に各ファイルのデータが入力されている、 といった風にしたいと考えています。) 参考になりそうな過去の回答もありましたので、いくつか試してみたものの、 うまくいきませんでした(私はマクロは少しかじった程度です)。 一個ずつコピペでは非常に骨が折れ、難儀しております。 ややこしい質問ではございますが、ご回答お待ちしております。

  • 複数のExcelブックから特定シートのセル範囲抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル範囲を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 このサイトで殆どよく似た回答を読んだのですがうまくいきません。VBA初心者です。 よろしくお願いします。 【前提】 ・実行する端末のOSはWindows 10 ExcelはOffice365 ProPlus ・対象フォルダはネットワーク接続フォルダ  この中に、複数のExcelブック(xlsx、xlsm)があります。 ・抽出したい対象は、各ブック内の「台帳」シートの「A3:Cの最終行」で  複数のブックの中には「台帳」シートが含まれていないブックも混在しています。 【抽出一覧作成イメージ】 ・「集約.xlsm」ブックの「集計」シートの2行目から抽出した結果を一覧表示する。 ・「集約.xlsm」ブックにマクロは登録する ・表示はA列に抽出元ブック名(=ファイル名)、B列からD列に抽出元「A3:Cの最終行」セルの値。 ・「A3:Cの最終行」セルの値を「集約.xlsm」ブックの「集計」に貼り付ける際には「値で貼り付ける」が望ましい。

専門家に質問してみよう