複数のシートやブックで値をすばやく検索するには?
特定の値が異なるシートや複数のブックにまたがって存在する可能性がある場合、その値を素早く見つけられたら便利だと思いませんか?これは特に大規模なプロジェクトや月次レポート作成時、あるいは複数のファイルに分けて管理されている情報を統合する際に頻繁に発生する課題です。各シートやファイルを手動で確認するのは時間も手間もかかり、ミスも起こりやすくなります。このチュートリアルでは、1 つのブック内、複数のブック間、さらには数式ベースまたは統合データによる解決策が必要なさまざまな状況において、データを効率的に検索するための実践的な手法をご紹介します。これらのアプローチは、日常的なExcel ワークフローやデータ分析プロジェクトで直面する現実的なニーズに的確に対応します。
Kutools for Excel で開いている複数のブック間で値を素早く検索する![]()
検索と置換関数を使ってブック内の複数のシートで値を検索する
Excel の検索と置換機能は、同じブック内の複数のワークシートで特定の値を素早く見つけるための基本的で効果的な方法です。この機能は、検索対象のシートが分かっている場合や、データが単一ファイル内で比較的整った構造になっている場合に特に役立ちます。ただし、異なるファイルや閉じたブックは検索できませんので、シンプルな検索作業に最適です。
2。まず、検索に含めるシートタブを、Ctrlキーを押しながらシートタブタブバーの各タブを1 つずつクリックして選択します。これにより、選択したすべてのワークシートに対して同時に検索が実行されます。スクリーンショットをご覧ください:

2。目的のシートを選択したら、Ctrl + Fを押して検索と置換ダイアログボックスを開きます。「検索する文字列」テキストボックスに検索したい値を入力し、「検索」タブで「すべて検索」ボタンをクリックすると、Excel が選択したワークシート上の該当セルとその位置を即座に一覧表示します。スクリーンショットをご覧ください:
![Excel の [検索と置換] ウィンドウで [検索する文字列] フィールドを表示しているスクリーンショット](http://cdn.extendoffice.com/images/stories/doc-excel/search-value-in-multuple-sheets/doc-search-value-in-multiple-sheets-2.png)
ヒント:検索と置換ツールは、開いて表示されている選択中のワークシート内でのみ検索を行います。他のシートにも検索範囲を広げたい場合は、上記のように事前にそれらのシートを選択してください。万一、シートを漏らしてしまっても、再度選択して操作をやり直せば問題ありません。
注意点:この方法では、閉じているブックや非表示のブックは検索対象外となり、セルを自動でハイライトすることもできません。検索結果はナビゲーション用の一覧としてのみ表示されます。
トラブルシューティング:期待する結果が表示されない場合は、シートの選択状態を再確認し、フィルターやセル保護によって検索対象が非表示になっていないか、あるいは制限されていないかをご確認ください。
複数のシートやブック間で値を検索と置換簡単に |
Kutools for Excelの高度な検索と置換機能を使えば、複数のシートや開いているすべてのワークブック全体で値を効率的に検索・置換できます。この高度な機能により、大規模なデータセットを扱う際に時間を節約し、エラーを回避でき、Excel での作業がより迅速かつ正確になります。 |
![]() |
Kutools for Excel – Excel をさらに強力に!300 種類以上の必須ツールで、作業がより迅速かつ簡単に。AI 機能を活用して、データ処理と生産性をさらにスマートに向上させましょう。今すぐ入手 |
VBA を使ってフォルダー内のすべてのブックで値を検索する
フォルダー内に保存されている複数のブック(開いていないファイルも含む)で特定の値を検索したい場合、Excel の標準機能では直接対応できません。こうしたケースでは、VBA(Visual Basic for Applications)マクロを使って処理を自動化できます。このマクロは、フォルダー内の各ブックを順に開き、すべてのワークシートをスキャンして該当箇所を記録します。定期的な監査やアーカイブ済みファイル、バッチ処理対象のファイル群から特定の値を効率よく確認する際に、非常に実用的です。
1。まず、Excel で新しい(または空の)ブックを開き、検索結果を表示したいセル(通常は A1 セル)を選択します。その後、Alt + F11を押してMicrosoft Visual Basic for Applicationsエディターウィンドウを起動してください。
2。VBA エディターで、挿入>標準モジュールを選択して新しいモジュールを作成し、以下の VBA コードをモジュールウィンドウに貼り付けてください。
VBA:フォルダー内のすべてのブックから値を検索する
Sub SearchFolders()
'UpdatebyKutoolsforExcel20200913
Dim xFso As Object
Dim xFld As Object
Dim xStrSearch As String
Dim xStrPath As String
Dim xStrFile As String
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWk As Worksheet
Dim xRow As Long
Dim xFound As Range
Dim xStrAddress As String
Dim xFileDialog As FileDialog
Dim xUpdate As Boolean
Dim xCount As Long
Dim xAWB As Workbook
Dim xAWBStrPath As String
Dim xBol As Boolean
Set xAWB = ActiveWorkbook
xAWBStrPath = xAWB.Path & "\" & xAWB.Name
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a forlder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
xStrSearch = "KTE"
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xOut = Worksheets.Add
xRow = 1
With xOut
.Cells(xRow, 1) = "Workbook"
.Cells(xRow, 2) = "Worksheet"
.Cells(xRow, 3) = "Cell"
.Cells(xRow, 4) = "Text in Cell"
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xFld = xFso.GetFolder(xStrPath)
xStrFile = Dir(xStrPath & "\*.xls*")
Do While xStrFile <> ""
xBol = False
If (xStrPath & "\" & xStrFile) = xAWBStrPath Then
xBol = True
Set xWb = xAWB
Else
Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
End If
For Each xWk In xWb.Worksheets
If xBol And (xWk.Name = .Name) Then
Else
Set xFound = xWk.UsedRange.Find(xStrSearch)
If Not xFound Is Nothing Then
xStrAddress = xFound.Address
End If
Do
If xFound Is Nothing Then
Exit Do
Else
xCount = xCount + 1
xRow = xRow + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
End If
Set xFound = xWk.Cells.FindNext(After:=xFound)
Loop While xStrAddress <> xFound.Address
End If
Next
If Not xBol Then
xWb.Close (False)
End If
xStrFile = Dir
Loop
.Columns("A:D").EntireColumn.AutoFit
End With
MsgBox xCount & " cells have been found", , "Kutools for Excel"
ExitHandler:
Set xOut = Nothing
Set xWk = Nothing
Set xWb = Nothing
Set xFld = Nothing
Set xFso = Nothing
Application.ScreenUpdating = xUpdate
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End Sub
3。F5キーを押すか、実行ボタンをクリックしてマクロを実行すると、フォルダーを選択ダイアログウィンドウが表示されます。このダイアログで、検索対象のブックが含まれるフォルダーを選択できます。スクリーンショットをご覧ください:
![Excel で検索対象フォルダーを選択するための [フォルダーの選択] ダイアログのスクリーンショット](http://cdn.extendoffice.com/images/stories/doc-excel/search-value-in-multuple-sheets/doc-search-value-in-multiple-sheets-3.png)
4。OKをクリックします。検索が完了すると、指定した値を含むセルの総数を示すメッセージボックスが表示されます。スクリーンショットをご覧ください:

5。OKをクリックしてメッセージを閉じると、見つかった値の位置がすべて新しいワークシートに一覧表示されます。ブック名、ワークシート名、セル参照、およびセルの正確な内容をすぐに確認できます。

ヒント:現在の検索語は VBA コード内で「KTE」に設定されています。これを変更したい場合は、コード中のxStrSearch = "KTE"という行を、お好みの検索語に置き換えてください。
注意点:マクロを実行する前に、関連するすべてのブックが保存済みで閉じられていることをご確認ください(マクロを実行するブック自体は開いたままにしておいて構いません)。多くのブックや複雑なExcel ファイルを含む大規模なフォルダーでは、処理に時間がかかる場合があります。実行中はマクロを中断しないでください。
トラブルシューティング:エラーが発生した場合は、すべてのファイルが正当なExcel ワークブック(破損しておらず、パスワード保護されていないこと)であり、かつマクロのセキュリティ設定でコードの実行が許可されていることをご確認ください。マクロが正常に終了しない場合は、まずは対象ファイルを絞って試してみてください。
Kutools for Excel で開いている複数のブックで値を素早く検索する
すでにExcel で開いている複数のブックをまとめて検索したいなら、Kutools for Excelに搭載された専用の検索と置換ペインが最適です。スクリプトや複雑な設定なしで、複数のブックを素早くスキャンでき、整理された形で簡単に検索可能。同時に複数のファイルを扱うことが多いユーザーにとって、使いやすくシンプルな検索ツールとしてぴったりです。
1。開いているいずれかのブックで、Kutoolsタブをクリックし、ナビゲーションを選択します。次に、検索と置換ボタンをクリックして
、検索と置換ペイン(通常はExcel ウィンドウの左側に表示されます)を表示します。スクリーンショットをご覧ください:
![Excel の [検索と置換] ウィンドウのスクリーンショット](http://cdn.extendoffice.com/images/stories/doc-excel/search-value-in-multuple-sheets/doc-kutools-find-replace-1.png)
2。検索タブで、検索する文字列テキストボックスに検索したい値を入力します。「検索範囲」ドロップダウンメニューから「すべてのブック」を選択すると、すべての開いているブックを対象に検索が実行されます。その後、「すべて検索」をクリックすれば、一致するセルとその位置が即座に一覧表示されます。スクリーンショットをご覧ください:![[検索する文字列] フィールドに入力済みの Kutools の [検索と置換] ウィンドウのスクリーンショット](http://cdn.extendoffice.com/images/stories/doc-excel/search-value-in-multuple-sheets/doc-kutools-find-replace-2.png)
ヒント:Kutools for Excel の高度な検索と置換機能を使えば、開いているすべてのブックだけでなく、特定の選択したワークシート、現在のワークブック、現在のワークシート、さらには現在の選択範囲内に限定してデータを検索・置換することも可能です。これにより、ニーズに応じたきめ細やかな制御が実現できます。![Kutools for Excel の [検索と置換] ダイアログでブック全体の結果を表示しているスクリーンショット](http://cdn.extendoffice.com/images/stories/doc-excel/search-value-in-multuple-sheets/doc-kutools-find-replace-3.png)
注意点:このツールは現在Excel で開いているファイルにしか対応していないため、検索したいすべてのブックを事前に開いておく必要があります。
トラブルシューティング:一部のファイルが検索結果に表示されない場合は、そのファイルがExcel で完全に読み込まれているか、また保護ビューまたは読み取り専用モードになっていないか(これらは検索アクセスを制限する可能性があります)を再度ご確認ください。
デモ:検索値 — Kutools for Excel で開いている複数のブック間で
Excel の数式を使って複数のシートで値を検索する
ワークブック内に複数の既知のシート名があり、特定の値がそれらのいずれかのシートに存在するかどうかを確認したい場合は、Excel の数式を使ってこれらのシートを動的に検索できます。この方法は、検索結果を常に自動的に最新の状態に保ちたい場合や、検索対象のシート一覧が比較的固定されている、または別テーブルで管理されている場合に特に有効です。
この方法は、あらかじめ検索対象のすべてのシート名を把握しておくか、リスト化している場合に最も効果的です。自動チェックやダッシュボードの作成、あるいは毎回フルスキャンを実行せずにサマリー参照を構築したいときに最適です。
メリット:データを変更すると、結果が自動で更新されます。スクリプトやアドインは一切不要で、すべてワークブック内だけで完結。
デメリット:シート名が頻繁に変わる場合や、シート数が非常に多い環境には向いていません。
使用例:「Sheet1」、「Sheet2」、および「Sheet3」という3つのシートがあると仮定します。たとえば、特定の値(例:「Invoice123」)がセル A1 にどのシートに含まれているか、あるいは単にその値がいずれかのシートに存在するかどうかを確認したい場合です。
手順1.シート名の一覧がD2:D4(D2: Sheet1、D3: Sheet2、D4: Sheet3)にあるとします。「Invoice123」などの検索対象の値をE1セルに入力し、F2 セルに次の数式を入力してください。
=IF(COUNTIF(INDIRECT("'"&D2&"'!A:A"), $E$1) >0, "Found", "Not Found") 手順2.F2 から F4 まで数式を下方向にコピーし、D2:D4 に記載されたすべてのシートをチェックします。これにより、各シートごとに「Found」または「Not Found」が表示されます。
動作の仕組み:この数式は、INDIRECT 関数でリストされた各ワークシートを参照し、COUNTIF 関数を使って E1 セルの値が各シートの A 列に含まれているかをチェックします。必要に応じて、A:Aの範囲を別の列や特定の範囲(例:A1:Z100)に調整してください。
追加のヒント:値が含まれるシート名を取得するには、次の配列数式を使用します(旧バージョンのExcel では Ctrl + Shift + Enter で入力し、Microsoft 365/Excel 2021+では通常の数式として入力可能):
=TEXTJOIN(", ",TRUE,IF(COUNTIF(INDIRECT("'"&D2:D4&"'!A:A"), $E$1)>0, D2:D4, "")) この数式は、値が見つかったすべてのシート名をカンマ区切りで返します。ただし、INDIRECT 関数は開いているワークブック内でのみ機能するため、閉じたファイルは検索できませんのでご注意ください。
注意点:シート名を変更または削除すると、数式は#REF!エラーを返します。常にシート名のリストが正しいことを確認してください。また、大規模なワークブックでは、INDIRECT 関数を使用した数式がパフォーマンスを低下させる可能性があります。
トラブルシューティング:エラーが表示された場合は、参照先のすべてのシートが存在し、検索範囲が正しいことをご確認ください。シート一覧が動的に変化する場合には、名前付き範囲やデータの入力規則(Data Validation)を活用して、シート一覧を自動的に最新化することをおすすめします。
関連記事:
- 複数のワークシートやブック全体で、検索と置換を素早く行うには?
- 開いている複数のExcel ファイルで、検索と置換を素早く行うには?
- Excel で最大の負の値(0 未満)をどのように見つけますか?
- Excel で列内の重複する値をすべて抽出するにはどうすればよいですか?
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得
