
このサイトで見つけた以下のコードを使用して、多数の Word ドキュメントからデータを取得し、Excel スプレッドシートに追加しようとしています。ただし、パスを介して特定のドキュメントを選択するようにコードを編集した後、コードを実行しようとすると、「オブジェクトが必要です」というエラーが引き続き発生します。どこが間違っているのか、またどのように修正すればよいのか説明していただけますか? 申し訳ありませんが、私は VBA の初心者で、その結果かなり混乱しています。
Sub Macro1()
Dim xl As Object
Set xl = CreateObject("excel.application")
xl.Workbooks.Add
xl.Visible = True
'Here put your path where you have your documents to read:
myPath = "C:\Users\arahmani\Desktop\march\" 'End with '\'
myFile = Dir(myPath & "*.docx")
xlRow = 1
Do While myFile <> ""
Documents.Open Filename:=myPath & myFile, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
xlCol = 0
Dim t As ListObject
For Each t In ActiveDocument.Tables
For Each Row In t.Rows
For Each c In r.Range.Cells
myText = c
myText = Replace(myText, Chr(13), "")
myText = Replace(myText, Chr(7), "")
xlCol = xlCol + 1
xl.ActiveWorkbook.ActiveSheet.Cells(xlRow, xlCol) = myText
Next c
xlRow = xlRow + 1
xlCol = 0
Next Row
Next t
ActiveWindow.Close False
myFile = Dir
Loop
xl.Visible = True
End Sub
答え1
確かなことは難しいが、出発点としては
Dim t As ListObject
すべきだ
Dim t As Table
これが Mac Office の場合、最初の CreateObject を実行しようとした場合でも問題が発生する可能性があります。
答え2
オブジェクトが必要です (エラー 424)発生する理由:
プロパティやメソッドへの参照には、明示的なオブジェクト修飾子が必要になることがよくあります。
MS Word 文書を宣言せずに使用しようとしています。まず Word アプリケーション オブジェクトを作成する必要があります。
Set wrd = CreateObject("word.Application")
次に、それを使用してドキュメントを開きます。
wrd.Documents.Open Filename:=myPath & myFile