フォルダ内の全てのWordファイルの内容を一括で検索する

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

こんな方におすすめ

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

この記事ではコードを紹介しますので、それをコピーして張り付けるだけでps1ファイルが作れます。

それではどうぞ!

機能紹介

例:下記のようなWordから、「当たり」と書かれたファイルを探す

このとき、テスト1,2,3,5,8の中には「当たり」と書かれていて、それ以外には「外れ」と書かれています。

複数のWordファイルの例

このとき、下記のように内容の検索ができます。

作業完了イメージ

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

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

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

コード紹介

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

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

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

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

# Wordファイル内のテキストを検索する
$files = Get-ChildItem -Path . -Recurse -Filter *.docx
foreach ($file in $files) {
    $document = $word.Documents.Open($file.FullName)
    foreach ($paragraph in $document.Paragraphs) {
        $text = $paragraph.Range.Text
        if ($text -match $keyword) {
            Write-Host "File: $($file.FullName)"
            Write-Host "--------------------------"
        }
    }
    $document.Close()
}

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

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

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

使い方

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

Word一括内容検索手順1
ファイル完成後イメージ

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

Excel一括内容検索手順2
Powershell起動

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

Word一括内容検索手順3
Powershell起動後ウインドウ

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

Word一括内容検索手順4
ps1ファイル起動

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

Word一括内容検索手順5
ps1ファイル起動

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

Word一括内容検索手順6
検索ワード入力

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

Word一括内容検索手順7
作業完了

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

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

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

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

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

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