【図解あり】フォルダ内の全てのExcelファイルの内容を検索する

おはようございます、すぎやまです。

この記事では、フォルダ内にあるExcelファイルの中身を検索し、探しているファイルを簡単に見つける方法を紹介します。
この記事を読めば、いちいちファイルを開いて内容を確認する手間がなくなります!

こんな方におすすめ

  • あのファイルどこいったっけ…という方
  • ChatGPTを使ったけど、機能しなかった方

仕事や作業をしていると、日々様々なファイルを作成します。
そしてそれらを後々確認したり、あるいは使用して解析等行うことも多々あります。

その時、開くファイルをすぐに判断できるなら問題ないですが、そうでない場合、中身を開いて確認してを繰り返す必要があります。

そうなると時間も手間もかかるので、今回はフォルダにある全てのExcelファイルの内容を検索するps1ファイルを紹介します。
この記事ではコードを紹介しますので、それをコピーして張り付けるだけでps1ファイルが作れます。

それではどうぞ!

機能紹介

このファイルは、フォルダ内にあるExcelファイルの内容を検索するファイルです。

例えば、フォルダにこんな感じでxlsxファイルがあるとします。

このとき、「テスト7」と「テスト13」の中には「当たり」と書かれていて、それ以外には「外れ」と書かれています。

このとき、このファイルを使うと

このように内容の検索ができます!

さっそく作り方を説明します!

ps1ファイルの作り方・使い方

ps1ファイルの作り方は、この記事を参照ください。
図解付きでps1ファイルの作り方と使い方を紹介しています!

コード紹介

今回使用したファイルの中身はこんな感じです!

# COMオブジェクトを作成してExcelを起動
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false  # Excelウィンドウを非表示にする

# スクリプトファイルのディレクトリをカレントディレクトリに設定する
Set-Location -Path $PSScriptRoot

# 検索する単語の入力
$keyword = Read-Host "検索する単語を入力してください"

# Excelファイル内のテキストを検索する
$files = Get-ChildItem -Path . -Recurse -Filter *.xlsx
foreach ($file in $files) {
    $workbook = $excel.Workbooks.Open($file.FullName)
    foreach ($worksheet in $workbook.Worksheets) {
        $rows = $worksheet.UsedRange.Rows.Count
        $cols = $worksheet.UsedRange.Columns.Count
        for ($i = 1; $i -le $rows; $i++) {
            for ($j = 1; $j -le $cols; $j++) {
                $cell = $worksheet.Cells.Item($i, $j)
                $cellText = $cell.Text
                if ($cellText -match $keyword) {
                    Write-Host "File: $($file.FullName)"
                    Write-Host "Cell: $cellText"
                    Write-Host "--------------------------"
                }
            }
        }
    }
    $workbook.Close()
}

# Excelアプリケーションを終了
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
Remove-Variable excel

Write-Host "検索が完了しました。"

この上のコードをコピーして、テキストに張り付けてps1ファイルにしてください。
それだけでファイルが完成します!

使い方

ファイルが完成したらこんな感じになります。

そうしたら、「Windows Power Shell」を起動します。

起動したら、下記のような画面になります。

この状態で、作成したps1ファイルを、このウインドウに重ねると

このような画面になります。

このままエンターキーを押すと、「検索する単語を入力してください」と表示されます。

今回は「当たり」と記載されたフォルダが調べたいので、「当たり」と入力します。
その後エンターキーを押すと

このように、ファイルが検索されます!
後は、それらのファイルを見に行けばよいだけです。

その他のファイルを検索する場合

今回はExcelファイルを検索しましたが、その他のファイルを検索したい場合もあります。
その方は下記の記事を参照ください。

wordファイルを検索する
今いるフォルダのみを検索する

以上、最後まで読んでいただき誠にありがとうございました。

タイトルとURLをコピーしました