初心者でもできる!VBAでWord文書内の文字列を検索して一覧化する方法

パソコンパソコン・スマホ教室
スポンサーリンク

こんにちは!今日は、VBAを使ってWord文書内の特定の文字列を検索し、その結果をExcelに一覧として出力する方法をご紹介します。パソコン操作に不安がある方でも、手順を追っていけば簡単にできる内容ですので、ぜひ最後までご覧ください。

スポンサーリンク

VBAでWord文書内の文字列を検索する基本の流れ

Wordのイメージ

Wordのイメージ

まずは、VBAを使ってWord文書内の文字列を検索する基本的な流れを確認しましょう。

  1. Wordアプリケーションを起動します。
  2. 検索したい文字列を設定します。
  3. Word文書を開き、検索を実行します。
  4. 検索結果を取得し、Excelシートに出力します。
  5. Wordアプリケーションを終了します。

これらの手順を順番に見ていきましょう。

実際のVBAコードを使ってみよう

次に、実際に使えるVBAコードをご紹介します。このコードを使えば、指定したフォルダ内のWord文書から特定の文字列を検索し、その結果をExcelに一覧として出力できます。

Sub SearchWordInDocuments()
Dim wordApp As Object
Dim wordDoc As Object
Dim rng As Object
Dim searchStr As String
Dim fileName As String
Dim rw As Long
Dim ws As Worksheet

' Excelのシートを設定
Set ws = ThisWorkbook.Sheets("Sheet1")
rw = 2 ' 出力開始行

' 検索する文字列を設定
searchStr = "検索したい文字列"

' Wordアプリケーションを起動
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = False ' Wordを表示しない

' フォルダ内のWord文書を順番に処理
fileName = Dir(ThisWorkbook.Path & "\*.docx")
Do While fileName <> ""
' Word文書を開く
Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\" & fileName)

' 文書全体を検索
Set rng = wordDoc.Content
rng.Find.Text = searchStr
rng.Find.Forward = True
rng.Find.Wrap = 1 ' wdFindStop

' 検索結果が見つかった場合
Do While rng.Find.Execute
' 結果をExcelに出力
ws.Cells(rw, 1).Value = fileName
ws.Cells(rw, 2).Value = rng.Information(3) ' wdActiveEndAdjustedPageNumber
ws.Cells(rw, 3).Value = rng.Information(4) ' wdFirstCharacterLineNumber
ws.Cells(rw, 4).Value = rng.Text
rw = rw + 1
Loop

' Word文書を閉じる
wordDoc.Close SaveChanges:=False
fileName = Dir() ' 次のファイルへ
Loop

' Wordアプリケーションを終了
wordApp.Quit
Set wordApp = Nothing
Set wordDoc = Nothing
Set rng = Nothing
End Sub

このコードを実行すると、指定したフォルダ内のWord文書から「検索したい文字列」を検索し、見つかった場所のファイル名、ページ番号、行番号、該当する文字列をExcelシートに出力します。

よくある質問や疑問

Q1: VBAって何ですか?

VBA(Visual Basic for Applications)は、Microsoft Office製品(Excel、Word、PowerPointなど)を自動化するためのプログラミング言語です。これを使うことで、繰り返しの作業を自動化したり、複雑な処理を簡単に行ったりすることができます。

Q2: このコードを実行するにはどうすればいいですか?

Excelを開き、「開発」タブから「Visual Basic」を選択してVBAエディタを開きます。新しいモジュールを挿入し、上記のコードを貼り付けて実行することで、動作を確認できます。

Q3: 他の条件で検索したい場合はどうすればいいですか?

`rng.Find.Text = “検索したい文字列”` の部分を変更することで、検索する文字列を変更できます。また、`rng.Find.MatchCase = True` と設定することで、大文字と小文字を区別して検索することも可能です。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

今回は、VBAを使ってWord文書内の特定の文字列を検索し、その結果をExcelに一覧として出力する方法をご紹介しました。手順を追っていけば、パソコン操作に不安がある方でも簡単にできる内容です。ぜひ、実際に試してみてくださいね。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

コメント

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