複数ファイルより特定のセルの値を集計マクロ

複数ファイルより特定のセルの値を自動で抽出・集計することができる!
複数ファイルより特定のセルの値を集計マクロツールをご紹介します。
エクセルファイルをダウンロードしてすぐに使えます。

シート上でデータの設定をしてボタンを押すだけで完了です。
複数ファイルの特定セルの抽出・集計もこれで差し替えなど来てもやり直しが簡単!

操作画面

手順

B2セルに集計するファイルの保存フォルダのパスを記入する

②抽出するデータのシート名をC4セルから、セル番号をC5を入力する

例えば以下の場合はシート名は「A社」セル番号は「B6」になります。

集計ボタンを押す

以下のように集計結果が入力されます。

※赤枠で囲んであるグレーのセルは集計の際メモとしてご利用ください。

↓ダウンロードはこちらをクリック(詳しい手順、注意事項はファイルの中に記載)

※パスワード付きファイルの場合は ⇒ こちらから

複数ファイルより特定のセルの値を集計マクロ」への37件のフィードバック

  1. ぽけし

    はじめまして。
    複数のエクセルファイルでシート名は全てのファイルで同じという状況でD9 、D12、D15とD列3行ごとを抽出したいのですが最初のD9しか抽出出来ません。
    当方VBマクロはあまり触れたことがないのでお手上げ状態でありコメントさせていただきました。
    可能であれば解決策をご教授いただきたく。
    よろしくお願いいたします。

    返信
    1. macro 投稿作成者

      はじめまして。
      いつもご利用いただきありがとうございます。

      以下の問い合わせの件ですが

      通出するデータ全て、シート名が同じということですが
      3つセル番号をした上の行(4行目)にシート名をすべて入力していますか?

      または、設定しているシート名に半角全角の違いがある可能性はありませんか?
      シート名は半角全角も一致しないと抽出できません。

      D9が抽出できているとなると、シート名の設定がうまくできていない可能性が高いと思われます。

      実際に確認していませんので、このくらいの事しかお伝え出来ず申し訳ありません。
      もう一度ご確認お願い致します。

      返信
  2. ty

    はじめまして
    とても便利に活用させていただいております。
    セル番号で、1つのセル(A2)を指定する場合は上手くいきました。
    複数のセルを縦に抽出したい場合はどうしたらよいのでしょうか。例えば、A2:A21の範囲でを取り出したい場合です。

    返信
    1. macro 投稿作成者

      A2:A21の範囲でを取り出したい場合は
      C5~V5のセルに「A2~A21」を入力しC4~V4のセルにシート名を入力して下さい。

      返信
      1. ty

        ご丁寧にご回答頂き、ありがとうございました。
        また、質問の仕方が悪くて申し訳ありません。

        取り込みたいデータは、複数あるファイルで、同じシート名と同じセルの範囲A2:A21です
        集計するエクセルに抽出したいのは、
        1つめのファイルのA2:A21が、抽出先のC7:C26
        2つめのファイルのA2:A21が、抽出先のC27:C46
        といった感じのことが出来るのでしょうか?
        お手数をおかけいたしますが、よろしくお願いします。

        返信
        1. macro 投稿作成者

          こちらこそ回答が間違っていて申し訳ありません。

          データをただ縦に抽出したいのであれば、
          抽出後行列の入れ替えをすればよいと思ったのですが
          データをC列一列に抽出したい場合はこちらのマクロではできません。

          もし必要であればお時間を頂ければご希望のマクロを作成することもできます。

          返信
          1. ty

            ご回答ありがとうございます。
            この度、複数のエクセルファイルを取り込むこととなり貴マクロを活用させて頂きました。
            複数ファイルの1行、複数列の取込では本当に一瞬で処理が終わって感動してます!
            範囲指定の取込が出来ればと思ったものですが、マクロは難しいですね。
            イメージとしては、複数のエクセルファイルの、シート名・セル範囲は同じものをコピー&ペーストしていくという感じでした。
            貴マクロのセル番号に開始セル、終了セルなどが指定し一気に取込が出来ればと思った次第です。

            これからも引き続き便利なマクロ作成の公開を楽しみにしております。
            今後ともよろしくお願いいたします。

          2. macro 投稿作成者

            貴重なご意見ありがとうございました。
            最近、新しいアップしていませんが
            皆さんの役に立つマクロを作っていこうと思ていますので
            よろしくお願い致します。

  3. my

    はじめまして。

    こちらのマクロを使わさせていただき集計があっという間に行うことができました。
    ありがとうございます。

    なお、パスワードのかかっているファイルを集計することは可能でしょうか?
    複数の人が自分の数値をそれぞれ個人のファイルにパスワードをつけて保存しています。
    管理する側としてそのすべてのファイルを一覧化する必要があります。(パスワードを管理側で指定することは可能です)

    返信
    1. macro 投稿作成者

      はじめまして。
      ご連絡ありがとうございます。
      パスワードを解除する設定を入れれば可能ではあります。
      パスワードは各ファイルごとに違うパスワードを設定しているのでしょうか。

      返信
  4. 松本靖生

    拝見させていただいております。
    エクセル2019で同様の処理ができません・・・
    同じフォルダに転記したいデータは全部ありますし、シート名セル名の全角半角も全部確認済みです。
    他に留意することはありますでしょうか?

    返信
    1. macro 投稿作成者

      私はエクセル2016で作成しています。
      2019で動くか確認できなくて申し訳ありません。
      ちなみにどこでエラーになってしまうのか教えていただくことができますか?

      返信
  5. JG

    こんばんは、勉強になってます!
    今回はセル指定ではすが、範囲指定の場合はどのようなカードになるか教えてください!

    返信
    1. macro 投稿作成者

      こんばんは。
      セル範囲の場合は行と列で繰り返し作業(for文等)でできると思います。

      返信
  6. あきら

    初めまして。
    『複数ファイルより特定のセルの値を集計マクロ』を利用させて頂いております。
    シート名をワイルドカードで使用することは可能でしょうか?

    返信
    1. macro 投稿作成者

      はじめまして。
      申し訳ありません。こちらはワイルドカードに対応しておりません。
      皆さんにお使いいただけるようエラーを回避したかったので。

      返信
      1. あきら

        返信ありがとうございます。
        了解いたしました、ありがとうございました。

        返信
  7. マツモト

    CSVファイルを読み込むことも可能でしょうか?その場合、カンマやタブの区切り文字でフィールドを区切って取り出すことも可能でしょうか?

    返信
    1. macro 投稿作成者

      ご連絡ありがとうございます。
      こちらのマクロではCSVファイルに対応してませんが、修正することは可能です。
      もし必要であればご連絡下さい。
      CSVに対応したものをおつくり致します。

      返信
  8. tm

    初めまして。
    とても分かりやすく、参考にさせて頂いております。

    データを行ではなく列で抽出したいのですが、
    どのようなマクロになるか教えていただけますでしょうか?
    先に別の方も質問されている方思いますが、
    自分なりの改造ではうまくいきませんでした。

    B列にシート名、C列にセル番号を設定しておき、
    D7セル以下のD列に抽出されるようにしたいです。
    (ファイルは1ファイルなので、A列にシート、B列にセル番号、C列に抽出でも問題ありません。)

    宜しくお願いいたします?

    返信
    1. macro 投稿作成者

      ご連絡ありがとうございます。
      ご要望のマクロを作成することは可能です。
      ただ、不明な点がいくつかあります。

      「ファイルは1ファイルなので、A列にシート、B列にセル番号、C列に抽出」
      ということは全シートからデータを抽出する必要はなく
      シート名、セル番号を設定し、1つのセルの値を抽出するということでしょうか?

      ファイルが1ファイルであれば以下のマクロを利用して修正した方がよいと思います。

      複数シートより特定のセルの値を集計マクロ
      http://excel-macro.com/sheets_cell_get_sum/

      しかし、すべてのシートから抽出する形式になっておりますので
      ご要望のレイアウトとは異なります。

      こちらのマクロからすべてのシートを検索する作業を削除し
      セル番号を修正しレイアウトを変更をすればご希望のマクロは作成可能です。

      もしご希望であればご要望のマクロを作成いたします。
      すぐに作成可能ですのでお気軽ご連絡ご連絡下さい。

      返信
  9. saku

    作者様、はじめまして。
    いつも「複数ファイルより特定のセルの値を集計マクロ」を使わせていただいております。作成していただき、ありがとうございました。
    現状のものでも大変便利で重宝しているのですが、共有ファイルに入れて使用する際に問題があってご意見を伺いたく、コメントいたしました。

    問題は、ローカルで作業する分には問題ないのですが、共有フォルダに格納して使用する際に起きました。
    データを抽出する対象のファイルを一度開いて閉じていると思いますが、閉じるときに「変更を保存しますか?」というダイアログが出てしまいます。(ファイルの数だけ確認が出るので、何度もポチポチと押す必要が出てしまいました。)
    一度該当のファイルを開いて、保存するとそのPCではもう起きないのですが、
    別のPCから共有を開いて実行しようとすると、同じ問題が生じます。

    おそらく共有でファイルを開いたときに出る、「インターネット上の場所から取得されており、安全でない可能性があります」という警告のためだと思いますが、回避する方法はございますでしょうか?
    (一応、端末のセキュリティセンターの設定をいじって警告が出ないようにしてみましたが、効果がありませんでした。)

    ご意見をいただけましたら嬉しいです。
    どうぞ、よろしくお願い申し上げます。

    返信
    1. macro 投稿作成者

      ご連絡ありがとうございます。
      マクロの最初に
      Application.DisplayAlerts = False ‘確認メッセージ非表示
      最後に
      Application.DisplayAlerts = True ‘確認メッセージ表示

      マクロ実行中は確認メッセージが非表示になります。
      よろしくお願い致します。

      返信
  10. ファイル読み込み時、1ファイルごとに変更内容を保存しますか?の警告がでて処理が中断するのですが、
    警告がでないようにできますか?よろしくお願いします

    返信
    1. macro 投稿作成者

      マクロの最初に
      Application.DisplayAlerts = False
      最後に
      Application.DisplayAlerts = True
      を入れてみてはどうでしょうか?

      返信
      1. ありがとうございます。解決しました

        返信
  11. 前回
    マクロの最初に
    Application.DisplayAlerts = False
    最後に
    Application.DisplayAlerts = Trueを入れて警告文はなくなったのですが、
    このブックには安全ではない可能性のある外部ソースへのリンクが1つ以上含まれています。
    リンクを信頼できる場合~ で更新する 更新しない の警告文が消えないです。
    方法があったら教えていただけないでしょうか?

    返信
    1. macro 投稿作成者

      ファイルを開く文に「, UpdateLinks:=False」を追加し、
      Workbooks.Open Filename:=Fol_path & “\” & Seach_book, UpdateLinks:=Falseに変更し
      ファイルをリンクを更新しないで開く設定にしてみてはどうでしょうか?

      返信
      1. ご返信ありがとうございます。
        無事に解決しました!!

        返信
  12. de

    はじめまして。
    複数ファイルより特定のセルの値を集計マクロを利用させて頂いております。

    それぞれのファイルの一番左のシートを集計したいのですが、vbaをどのようにすればいいでしょうか?
    よろしくお願いします。

    返信
  13. de

    はじめまして
    全てのファイルにある1番左のシートの同一セルを集約する場合、どうすればいいか教えていただきたいです。

    返信
    1. macro 投稿作成者

      返信遅くなりまして申し訳ありません。
      シート名が異なるのでこちらのツールでシート名の設定できないということでしょうか?
      非表示のシートが左側に存在しなければ
      以下の文を

      w.Cells(n, i + 2).Value = Workbooks(Seach_book).Worksheets(sh_name(i)).Range(cell_no(i)).Value

      以下のように修正すればシート名の設定を無視して1番左のシートの値を集計できると思います。

      w.Cells(n, i + 2).Value = Workbooks(Seach_book).Sheets(1).Range(cell_no(i)).Value

      よろしくお願い致します。

      返信
      1. de

        解決しました。ありがとうございます!

        返信
  14. 横塚 芳和

    初めまして、集計マクロを使用させていただきたいのですが、よろしいでしょうか。
    また、試しで使用させていただいたのですが、シート名とセル番号の入力が24個までですが、
    増やすにはどうしたら良いでしょうか。

    お手数とは存じますが、ご教授をお願い致します。

    返信
    1. macro 投稿作成者

      コメントありがとうございます。
      書式はZ列まで設定しておりませんが、
      Z列以降に空白なく同様に入力していただければ同様に動くように設定しておりますのでお試しください。
      よろしくお願い致します。

      返信
  15. hira

    はじめまして、
    複数ファイルより特定のセルの値を自動で抽出・集計することができるマクロを使わせて頂いております。

    簡単な質問で恐縮なのですが、
    左端に列を挿入して使用したいと考えます。
    集計するファイルが多くあり、『No.』を考えております。
    色々、試しましたが上手くいきませんでした。
    どのように、追加修正すれば良いかご教示頂きたいです。

    お手数をお掛けしますが、宜しくお願い致します。

    返信
    1. macro 投稿作成者

      返信が遅くなりまして申し訳ありません。
      A列に1列追加した場合
      該当するCells(●, ▲)の▲部分を▲+1の数字に変更してください。
      もしくはB列がメモ欄になっておりますのでB列に「No」を入力してみてはいかがでしょうか。
      よろしくお願い致します。

      返信

あきら へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください