複数のワークシートやワークブックで値を素早く検索する方法は?
特定の値を、異なるワークシートや複数のワークブックで検索したいと感じたことはありませんか?これは、大規模なプロジェクトや月次レポート、複数ファイルで管理された情報を統合する時などによくあるシナリオです。手動で各ワークシートやファイルを探すのは非常に時間がかかるだけでなく、ミスも発生しやすくなります。本チュートリアルでは、1つのワークブック内や複数のワークブック、数式や統合データを利用した場合など、さまざまなシーンに対応した効率的な検索方法をご紹介します。これらの方法は、日常のExcel作業やデータ分析プロジェクトで実際に直面するニーズ解決に役立ちます。
検索と置換機能でワークブック内の複数ワークシートから値を検索する方法
VBAを使ってフォルダ内すべてのワークブックから値を検索する方法
Kutools for Excelで複数の開いているワークブック全体から値を素早く検索する方法
Excel数式で複数ワークシートにまたがって値を検索する方法
検索と置換機能でワークブック内の複数ワークシートから値を検索する方法
Excelの「検索と置換」機能は、同一ワークブック内の複数ワークシートから特定の値を素早く探し出すための、シンプルで効果的な方法です。この方法は、どのワークシートを検索するか把握している場合や、データが比較的整理されているファイルに特に便利です。異なるファイルや閉じたワークブックには対応していませんが、簡単に素早く検索できる便利な方法です。
1.まず、Ctrlキーを押しながらシートタブバー上の各ワークシートをクリックし、検索対象とするワークシートを選択します。これにより、選択したすべてのワークシートで同時に検索を実行できます。スクリーンショット参照:
2. 必要なワークシートを選択したら、Ctrl + Fを押して「検索と置換」ダイアログボックスを開きます。検索タブの「検索内容」欄に探したい値を入力し、「すべて検索」ボタンをクリックします。すると、選択したワークシート上で検索値を含むすべてのセルが一覧で表示され、場所も確認できます。スクリーンショット参照:
ヒント: 検索と置換ツールは、開いていて表示されている選択済みのワークシート内のみを検索します。追加のワークシートまで検索範囲を広げたい場合は、上記の手順で選択してください。ワークシートを選択し忘れてしまった場合は、選択に追加後、操作をやり直すだけです。
注意事項: この方法は、閉じているまたは非表示のワークブックを検索できず、セルを自動でハイライトしません。結果一覧のみが表示されますので、ナビゲーションの参考にしてください。
トラブルシューティング:期待した検索結果が表示されない場合は、ワークシート選択や、フィルターやセルの保護設定が検索を妨げていないか確認してください。
複数のシートやワークブックにわたって値を簡単に検索して置換 |
Kutools for Excelの高度な「検索と置換」機能は、複数のシートや開いているすべてのワークブックにわたって値を検索して置換する効率的な方法を提供します。この高度な機能を使用することで、大規模なデータセットを扱う際に時間を節約し、エラーを排除でき、Excelでの作業をより迅速かつ正確に行うことができます。 |
![]() |
Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できる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キーを押すか「実行」ボタンをクリックしてマクロを実行します。「フォルダーを選択」ダイアログが表示され、検索対象のワークブックが保存されたフォルダーを選択できます。スクリーンショット参照:
4. OKをクリックします。検索が完了すると、合計で見つかったセル数をお知らせするメッセージボックスが表示されます。スクリーンショット参照:
5. メッセージを閉じるにはOKをクリックします。値が見つかった場所はすべて新しいワークシートに一覧され、ワークブック名、ワークシート名、セル参照、実際のセル内容が確認できます。
ヒント: 現在の検索キーワードはVBA内で「KTE」に設定されています。xStrSearch = "KTE"というコードを、お好みの値に変更してカスタマイズ可能です。
注意事項: 実行前に、関連するワークブックをすべて保存して閉じておいてください(マクロを実行するワークブックのみ開いていても構いません)。大量または複雑なExcelファイルが入っているフォルダーの場合、処理に時間がかかることがあります。実行中はマクロを中断しないでください。
トラブルシューティング: エラーが発生する場合、すべてのファイルが正規のExcelワークブックであること(破損・パスワード保護されていないか)、マクロのセキュリティ設定が実行を許可しているかを確認してください。マクロが最後まで終了しない場合は、まず少数のファイルで試してみてください。
Kutools for Excelで複数の開いているワークブック全体から値を素早く検索する方法
すでにExcelで複数のワークブックを開いている場合、Kutools for Excelの専用「検索と置換」パネルを使えば、検索作業をより簡単かつ管理しやすく行えます。スクリプトや複雑なセットアップが不要で、複数ファイルを同時に扱うことが多い方や、簡単に検索したい方にとって効率的で便利なツールです。
1.いずれかの開いているワークブックで、 Kutools タブに移動し、 ナビゲーションを選択します。次に、 検索と置換 ボタン をクリックして、 検索と置換 パネル(通常はExcelウィンドウの左側に表示)を開きます。スクリーンショット参照:
2. 検索 タブで、検索したい値を 検索内容テキストボックスに入力します。「 すべてのワークブック 」を 検索範囲 ドロップダウンメニューから選択することで、すべての開いているワークブックを対象に検索できます。その後、 すべて検索 をクリックすると、合致するセルが一覧で即座にリスト表示され、それぞれの場所も確認できます。スクリーンショット参照:
ヒント: Kutools for Excelの高度な検索と置換ユーティリティは、すべての開いているワークブックだけでなく、特定のワークシート、現在のワークブック、現在のワークシート、あるいは現在の選択範囲だけで検索や置換を行うことも可能です。状況に応じて柔軟に設定できます。
注意事項: 検索対象としたいワークブックは、事前にすべてExcel上で開いておく必要があります。このツールは閉じているファイルの検索には対応していません。
トラブルシューティング: 一部ファイルが検索結果に表示されない場合は、それらがExcel上に完全に読み込まれていて、保護ビューや読み取り専用モードになっていないか確認してください。これらのモードでは検索アクセスが制限されることがあります。
デモ:Kutools for Excelで複数の開いているワークブック全体から値を検索
Excel数式で複数ワークシートにまたがって値を検索する方法
ワークブック内に複数の既知のワークシート名があり、それらの中から特定の値が存在するかどうか、またその場所を確認したい場合、Excelの数式を用いて動的に検索できます。この方法は、検索結果を常に自動更新しておきたい場合や、ワークシートリストが定期的または別表で管理されている際に特に適しています。
この方法では、あらかじめ検索対象となるすべてのワークシート名を把握・一覧化しておく必要があります。自動チェックやダッシュボード、都度全体検索したくない場面でサマリー参照を作成したい場合などに最適です。
メリット: データの変化に伴い結果が自動で更新される・スクリプトやアドイン不要・すべてワークブック内で完結。
デメリット: ワークシート名が頻繁に変わる場合や、非常に多くのワークシートを持つ場合には向きません。
例: Sheet1
、Sheet2
、Sheet3
の3つのワークシートがあり、「Invoice123」という値がA1セルに、またはどこかに存在するかを判別したい場合を想定します。
ステップ1. ワークシート名リスト(D2:D4:D2=Sheet1、D3=Sheet2、D4=Sheet3)を用意し、E1に検索したい値(例:「Invoice123」)を入力します。そして、F2セルに次の数式を入力します。
=IF(COUNTIF(INDIRECT("'"&D2&"'!A:A"), $E$1) >0, "Found", "Not Found")
ステップ2. F2からF4に数式をドラッグすれば、D2:D4に列挙した全ワークシートに対して「発見」または「未発見」が返されます。
仕組み: 数式ではINDIRECT関数で各ワークシートへの参照を作成し、COUNTIF関数でE1の値が各ワークシートのA列内(A:A)
に存在するかをチェックします。必要に応じて範囲(A:A)を他の列や特定の範囲(例:A1:Z100
)に変更することも可能です。
追加ヒント: 値が含まれるワークシート名を取得したい場合は、次の配列数式を使用します(旧ExcelではCtrl + Shift + Enterで、Microsoft365/Excel2021以降では通常の数式として入力)。
=TEXTJOIN(", ",TRUE,IF(COUNTIF(INDIRECT("'"&D2:D4&"'!A:A"), $E$1)>0, D2:D4, ""))
この数式では、値が見つかったワークシート名がカンマ区切りリストとして返されます。INDIRECT関数は開いたワークブックでしか機能しないため、閉じたファイルは検索できないことにご注意ください。
注意事項: ワークシート名が変更・削除されている場合、数式は#REF!エラーになります。必ずワークシート名リストが正しいか確認しましょう。大きなワークブックでは、INDIRECTベースの数式がパフォーマンスを低下させる場合があります。
トラブルシューティング: エラーが表示された場合は、参照しているワークシートがすべて存在し、検索範囲も正しいか確認してください。動的なワークシートリストが必要な場合は、名前付き範囲やデータ検証を活用して自動更新できるようにすると便利です。
関連する記事:
- 複数ワークシートまたはワークブック全体で素早く検索と置換するには?
- 複数の開いているExcelファイルで素早く検索と置換を行う方法は?
- Excelで最大の負の値(0より小さい値)を見つける方法
- Excelで列内のすべての重複値を抽出する方法
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得