前提・実現したいこと
エクセルVBAを用い、特定のフォルダに存在するWordファイルを開き、Wordファイル中の文字を検索した後、結果をエクセル(B列)に記入するマクロを組もうとしています。検索する文字はあらかじめエクセルファイル(A列)に記載しておくようにしております。
発生している問題・エラーメッセージ
指定したフォルダ中のワードファイルを開くところまでは出来ているのですが、文字検索を実行するところでエラーが発生して進めることが出来ない状態です。マクロを実行すると「オブジェクトはこのプロパティまたはメソッドをサポートしていません」と表示されます。
恐らくコード中の変数「objDoc」の型が不適切なのだろうと予測しているのですが、どのように変更すればよいか分かりません。どう修正すればよいかご教示ください。
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」 また、エラーが表示された際、「デバック」ボタンを押すと 「For i = 1 To MaxRow」の下のコード 「.Selection.Find.ClearFormatting」が黄色く塗りつぶされ、エラーの該当箇所になります。
該当のソースコード
番号リストSub ワードファイル開いて検索() Dim fso As FileSystemObject Set fso = New FileSystemObject Dim fl As Folder Set fl = fso.GetFolder("フォルダのURL") ' フォルダを指定 Dim objWord As Word.Application Set objWord = CreateObject("Word.Application")objWord.Visible = True Dim objDoc As Document Dim f As File For Each f In fl.Files ' フォルダ内のファイルを取得 Set objDoc = objWord.Documents.Open(f.Path) Dim i As Long, MaxRow As Long Dim P As Long, L As Long ' Excel側 Sheet1 A列で最終行を確認 MaxRow = ThisWorkbook.Worksheets("Sheet1"). _ Range("A" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False With objDoc For i = 1 To MaxRow .Selection.Find.ClearFormatting .Selection.HomeKey Unit:=wdStory ' 検索するキーワードを設定します .Selection.Find.Text = ThisWorkbook.Worksheets("Sheet1"). _ Range("A" & i) ' 検索する方向を指定します .Selection.Find.Forward = True If .Selection.Find.Execute Then With .Selection P = .Range.Information(wdActiveEndPageNumber) L = .Range.Information(wdFirstCharacterLineNumber) ThisWorkbook.Worksheets("Sheet1").Range("B" & i) = P & "ペ-ジ == " & L & "行" End With Else ThisWorkbook.Worksheets("Sheet1").Range("B" & i) = 0 End If Next End With ThisWorkbook.Worksheets("Sheet1").Cells.Columns.AutoFit Application.ScreenUpdating = True Next End Sub
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/25 12:59