日常業務でExcelを使っていると、「過去の報告書や契約書のどこに目的のデータがあるのか分からない」「複数のフォルダーにあるExcelを一括で検索したい」という課題に直面することがあります。
Excelの標準機能では1つのブック内や開いているシートしか検索できません。
複数のExcelファイルを対象に中身まで探すには、手作業では限界があります。
そこで役立つのが、VBAやRPAを活用した“複数ファイル検索の自動化”です。
本記事では、Excelで複数ファイルをまとめて検索する方法と、RPA(UiPath・Power Automateなど)を使って完全自動化する手順をわかりやすく解説します。
目次
- ・なぜ“複数ファイル検索”が必要なのか
- ✅ Excel標準機能では複数ファイル検索できない理由
- ✅ 方法①:VBAで複数Excelファイルを一括検索する
- ・VBAの基本コード
- ・このマクロのポイント
- ・応用:複数キーワード検索
- ✅ 方法②:RPAで複数Excelファイルを自動検索
- ・Power Automate Desktopでの構成イメージ
- ・UiPathの場合の流れ
- ✅ 実務での活用事例
- ・契約管理
- ・営業・顧客管理
- ・経理・請求処理
- ・品質・監査部門
- ・情報セキュリティ管理
- ✅ 自動化のメリット
- ✅ 導入・運用時の注意点
- ✅ 自動化をさらに拡張するアイデア
- ✅ まとめ:Excel複数ファイル検索を自動化して“探す時間”をゼロに
・なぜ“複数ファイル検索”が必要なのか
多くの企業では、報告書・契約書・請求データなどが年単位・部署単位でフォルダーに分かれています。
検索を手作業で行うと、以下のような問題が発生します。
- どのファイルに目的のデータがあるか分からない
- 1件ずつ開いてCtrl+F検索するのが非効率
- 検索漏れやミスが発生する
- 共有フォルダーの容量が増えて検索に時間がかかる
このような非効率を解消するために、ExcelのVBAやRPAを使って「複数ファイルを一括検索」できる仕組みを作ることが有効です。
✅ Excel標準機能では複数ファイル検索できない理由
Excel標準の「検索と置換」機能(Ctrl+F)は、開いているシートまたはブック内しか対象にできません。
つまり、複数のファイルを同時に検索する機能が標準では存在しません。
そのため、次のいずれかのアプローチが必要になります。
- VBA(マクロ)でフォルダー内のファイルを順番に開いて検索する
- RPAでExcelを自動操作して複数ファイルを検索する
- 専用ツール(grep系フリーソフトなど)を利用する
この記事では、VBAとRPAを中心に、ビジネス現場で導入しやすい方法を紹介します。
✅ 方法①:VBAで複数Excelファイルを一括検索する
まずは、VBAマクロを使って複数ファイルの中身を検索する方法を紹介します。
この方法では、指定したフォルダー内のすべてのExcelファイルを自動で開き、指定キーワードを含むセルを一覧化します。
・VBAの基本コード
Sub SearchMultipleExcelFiles()
Dim folderPath As String
Dim fileName As String
Dim keyword As String
Dim wb As Workbook, ws As Worksheet, c As Range
Dim resultWs As Worksheet
Dim resultRow As Long
' 検索条件の設定
folderPath = "C:\TestFolder\" ' 検索対象フォルダー
keyword = InputBox("検索するキーワードを入力してください")
' 結果出力シートの準備
Set resultWs = ThisWorkbook.Sheets.Add
resultWs.Name = "検索結果_" & Format(Now, "hhmmss")
resultWs.Range("A1:E1").Value = Array("ファイル名", "シート名", "セル位置", "内容", "パス")
resultRow = 2
' フォルダー内のExcelファイルをループ
fileName = Dir(folderPath & "*.xls*")
Do While fileName <> ""
Set wb = Workbooks.Open(folderPath & fileName, ReadOnly:=True)
For Each ws In wb.Worksheets
For Each c In ws.UsedRange
If InStr(1, c.Text, keyword) > 0 Then
resultWs.Cells(resultRow, 1).Value = fileName
resultWs.Cells(resultRow, 2).Value = ws.Name
resultWs.Cells(resultRow, 3).Value = c.Address
resultWs.Cells(resultRow, 4).Value = c.Text
resultWs.Cells(resultRow, 5).Value = folderPath & fileName
resultRow = resultRow + 1
End If
Next c
Next ws
wb.Close SaveChanges:=False
fileName = Dir
Loop
MsgBox "検索完了!結果を「" & resultWs.Name & "」に出力しました。", vbInformation
End Sub
・このマクロのポイント
- フォルダー内のすべてのExcelファイルを対象
Dir(folderPath & "*.xls*")でフォルダー内を自動探索。 - 複数シートも横断的に検索
For Each ws In wb.Worksheetsで全シートをチェック。 - 検索結果を一覧化
ヒットしたセルの情報(ファイル名・シート名・内容)を「検索結果」シートに出力。 - 読み取り専用で開く
誤ってデータを変更しないように安全に検索可能。参考:【VBA】ダイアログを開いてファイルを開く方法|ユーザーに選ばせて安全に自動化
・応用:複数キーワード検索
複数のキーワード(例:「契約 更新 支払」)を空白区切りで入力して検索することも可能です。
Dim words() As String, i As Long
words = Split(keyword, " ")
For i = LBound(words) To UBound(words)
If InStr(1, c.Text, words(i)) > 0 Then
' 該当処理
End If
Next i
これにより、複数の語句を同時に抽出できます。
✅ 方法②:RPAで複数Excelファイルを自動検索
RPA(Robotic Process Automation)を使えば、Excel操作を完全に自動化できます。
特にUiPathやPower Automate Desktopは、複数ファイルをループ処理して検索する自動フローを簡単に構築できます。
・Power Automate Desktopでの構成イメージ
- 「フォルダー内のファイル一覧を取得」
対象フォルダーを指定し、Excelファイルを全て取得。 - 「繰り返し」アクティビティ
取得したファイルごとにループ処理を設定。 - 「Excelの起動」→「セルを読み取り」
Excelファイルを自動で開き、各セルを確認。 - 「条件分岐」
セルの内容に検索キーワードが含まれていれば、結果をExcelやCSVに出力。 - 「結果一覧を保存」
検索結果を新しいファイルにまとめて保存。参考:【Power Automate】複数のExcelに転記する方法|大量データの自動分配と業務効率化
・UiPathの場合の流れ
UiPathでも同様の処理が可能です。
アクティビティの構成は次の通りです。
- 「フォルダー内のファイルを繰り返し」
- 「Excelアプリケーションスコープ」でファイルを開く
- 「範囲を読み込み」で全セルを取得
- 「条件分岐(If)」で
row("列名").ToString.Contains("キーワード") - 該当行を結果データテーブルに追加
- 最後に結果をExcelに書き出す
この自動化により、100件以上のファイルも数分で一括検索できます。
参考:【UiPath】複数ファイルを一括処理する方法|Excel・CSV対応
✅ 実務での活用事例
Excelの複数ファイル検索は、さまざまな業務分野で活用できます。
・契約管理
契約書フォルダー内のExcelファイルから「契約満了」「更新」「解除」などの文言を検索し、一覧化。
RPAで自動実行すれば、毎月の契約更新チェックを完全自動化できます。
・営業・顧客管理
複数の顧客台帳・報告書から特定の会社名を検索し、過去のやり取りを即座に把握。
営業担当者が別でも履歴を可視化できます。
参考:【Excel】【営業向け】売上金額に応じてランクを自動表示するIF関数の使い方|簡単に業績ランク付け!
・経理・請求処理
請求書・支払一覧ファイルから「未処理」「差戻し」などを一括検索し、漏れを防止。
・品質・監査部門
検査記録・報告書フォルダーから「不具合」「再発」「改善」などを検索。
品質管理報告を自動作成する仕組みも構築可能。
・情報セキュリティ管理
全社の共有フォルダーにあるExcelから「個人情報」「社外秘」「パスワード」などの語を検索し、誤共有ファイルを検出。
✅ 自動化のメリット
Excelの複数ファイル検索をRPAで自動化することで、以下のメリットが得られます。
✅ 作業時間の大幅削減:数時間かかる検索を数分で完了。
✅ ミス防止:検索条件を固定できるため、人為的な見落としがない。
✅ 夜間・定期実行が可能:スケジュール実行で自動レポート生成。
✅ 属人化防止:誰でも同じ結果を得られる再現性の高い仕組み。
これらの効果は、日々のExcel業務の効率を根本的に改善します。
✅ 導入・運用時の注意点
複数ファイル検索を自動化する際は、次のポイントを押さえておきましょう。
- 検索対象を限定する
全フォルダーを対象にすると時間がかかるため、特定のサブフォルダー単位で実行する。 - 読み取り専用で開く設定
誤って上書き保存しないようにする。 - 古い形式(.xls)への対応
バイナリ形式は開くのに時間がかかるため、可能なら.xlsxへ変換。 - ファイルロック対策
同時アクセス防止のため、RPAで1件ずつ順次処理する構成にする。 - 結果ログを残す
検索日時や対象フォルダーを記録しておくと再実行が容易。
✅ 自動化をさらに拡張するアイデア
RPAと組み合わせることで、検索だけでなく通知・報告・分析まで自動化できます。
- 検索結果をExcelにまとめて自動メール送信
- 条件に合致したファイルを自動コピーまたは別フォルダーへ仕分け
- 特定のキーワード(例:「エラー」「未処理」)を検出した場合にTeamsへアラート通知
- 検索ログを蓄積し、月次レポートを自動作成
こうした自動処理を追加すれば、検索業務が「人の作業」から「仕組み」へと進化します。
✅ まとめ:Excel複数ファイル検索を自動化して“探す時間”をゼロに
- Excel標準機能では複数ファイル検索ができないため、VBAやRPAを活用するのが効果的。
- VBAではフォルダー内の全Excelを開き、キーワードを抽出して一覧化できる。
- RPAを使えば、Excel操作を自動化して夜間や定期実行にも対応可能。
- 契約・請求・監査・品質管理など、あらゆる業務で活用できる。
- 自動化によってミスが減り、検索にかかる時間を大幅に短縮できる。
Excelの複数ファイル検索を手作業から自動化に変えることで、
「探す」時間をゼロにし、「考える」時間に変えることができます。
✅ まとめ:Excel複数ファイル検索をRPAで自動化し、“情報探索のムダ”を完全に排除しよう