2週間前にVBAを学ぶことにしました。しかし今、私は自分で解決できないような問題に遭遇しました。 私はさまざまなモジュールを含むExcel文書をセットアップしました。これらのモジュールの1つは、単語文書からコメントを、Excelシート上に抽出します。Wordのコメント抽出:番号付き見出しを取得するのに役立ちます
問題は、各コメントの上に最初に番号が付けられたヘッダーを抽出できなかったことです。これは非常に好きです。現在、私はコメントを抽出した後、手動でこれを行う必要があります。例として、「2.1.1タイトル」のように、各コメントの上に最初のヘッダーと番号を抽出したいと思います。コメントがヘッダー自体を強調表示している場合は、そのヘッダーも抽出する必要があります。
私はオンラインで見つけられるものに基づいてさまざまなことを試しましたが、さまざまなバグを経験するたびに修正できないようです。私はまだソートが機能するものを見つけていません。私は明らかにWord VBAで動作するはずのメソッドを試しましたが、Excel内で動作させることができませんでした。
誰かが番号付きヘッダーの抽出方法を知っていますか?どんなヒントやヒントも高く評価されます。
これは、モジュールの私が持っているコードです。ここで
Sub ImportCommentsDOCX()
Dim wdDoc As Object
Dim wdFileName As Variant
Dim i As Integer
wdFileName = Application.GetOpenFilename("Word files (*.docx),*.docx", , _
"Browse for file to be imported")
If wdFileName = False Then Exit Sub '(user cancelled import file browser)
Set wdDoc = GetObject(wdFileName) 'open Word file
'1: if no comments'
With wdDoc
If wdDoc.Comments.Count = 0 Then
MsgBox ("No comments")
End If
'2; Set excel headers'
Range("B" & 1).Value = "Number"
Range("B" & 1).Font.Bold = True
Range("C" & 1).Value = "Comment"
Range("C" & 1).Font.Bold = True
Range("D" & 1).Value = "Highlighted text"
Range("D" & 1).Font.Bold = True
Range("E" & 1).Value = "Initials"
Range("B" & 1).Font.Bold = True
Range("F" & 1).Value = "Date (*Imprecise)"
Range("F" & 1).Font.Bold = True
'3: Extract comments and meta data'
For i = 1 To wdDoc.Comments.Count
Range("B" & 1 + i).Value = wdDoc.Comments(i).Index
Range("C" & 1 + i).Value = wdDoc.Comments(i).Range
Range("D" & 1 + i).Value = wdDoc.Comments(i).Scope.FormattedText
Range("E" & 1 + i).Value = wdDoc.Comments(i).Initial
Range("F" & 1 + i).Value = Format(wdDoc.Comments(i).Date, "dd/MM/yyyy") 'Unreliable: Sometimes gives wrong date'
'Range("G" & 3 + i).Value = wdDoc.Comments(i).Range.ListFormat.ListString 'Returns empty'
Next i
End With
Set wdDoc = Nothing
MsgBox ("Extraction has completed")
End Sub
Wordでは、コメントはDocに適用されますが、ExcelではExcelのシートに適用できます。 'Debug.Print ActiveSheet.Comments.Count'。おそらくあなたはExcelファイルを開くときにExcelを使用する場所を変更するでしょうか? –
わかりませんが、はい、開かれるdocという言葉が変わります。あなたは、私はVBAをExcelで単語VBAを使用して以前に会ったエラーを避けるためにデバッグすべきだと言っていますか? –