こんにちは!今日は、VBAを使ってWord文書内の特定の文字列を検索し、その結果をExcelに一覧として出力する方法をご紹介します。パソコン操作に不安がある方でも、手順を追っていけば簡単にできる内容ですので、ぜひ最後までご覧ください。
VBAでWord文書内の文字列を検索する基本の流れ
まずは、VBAを使ってWord文書内の文字列を検索する基本的な流れを確認しましょう。
- Wordアプリケーションを起動します。
- 検索したい文字列を設定します。
- Word文書を開き、検索を実行します。
- 検索結果を取得し、Excelシートに出力します。
- 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` と設定することで、大文字と小文字を区別して検索することも可能です。
今すぐ解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
今回は、VBAを使ってWord文書内の特定の文字列を検索し、その結果をExcelに一覧として出力する方法をご紹介しました。手順を追っていけば、パソコン操作に不安がある方でも簡単にできる内容です。ぜひ、実際に試してみてくださいね。
他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。
コメント