When exporting Word review comments, how do you reference the sentence related to a comment?

后端 未结 2 661
梦谈多话
梦谈多话 2021-02-10 15:29

I am trying to export a Word document\'s review comments. I want to export the sentence selection that was commented on followed by the comment.

Screen shot of the imag

2条回答
  •  独厮守ぢ
    2021-02-10 16:11

    I have gathered several pieces of code and came to this solution:

    Sub CopyCommentsToExcel()
    'Create in Word vba
    'TODO: set a reference to the Excel object library (Tools --> Reference --> Microsoft Excel 12.0 Object library)
    
    Dim xlApp As Excel.Application
    Dim xlWB As Excel.Workbook
    Dim i As Integer
    Dim HeadingRow As Integer
    HeadingRow = 3
    
    Dim cmtRef As Range
    
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    Set xlWB = xlApp.Workbooks.Add ' create a new workbook
    With xlWB.Worksheets(1)
    ' Create report info
        .Cells(1, 1).Formula = "Reviewed document:"
    
    ' Create Heading
        .Cells(HeadingRow, 1).Formula = "Index"
        .Cells(HeadingRow, 2).Formula = "Page"
        .Cells(HeadingRow, 3).Formula = "Line"
        .Cells(HeadingRow, 4).Formula = "Comment"
        .Cells(HeadingRow, 5).Formula = "Reviewer"
        .Cells(HeadingRow, 6).Formula = "Date"
        For i = 1 To ActiveDocument.Comments.Count
            .Cells(2, 1).Formula = ActiveDocument.Comments(i).Parent
            .Cells(i + HeadingRow, 1).Formula = ActiveDocument.Comments(i).Index
            .Cells(i + HeadingRow, 2).Formula = ActiveDocument.Comments(i).Reference.Information(wdActiveEndAdjustedPageNumber)
            .Cells(i + HeadingRow, 3).Formula = ActiveDocument.Comments(i).Reference.Information(wdFirstCharacterLineNumber)
            .Cells(i + HeadingRow, 4).Formula = ActiveDocument.Comments(i).Range
            .Cells(i + HeadingRow, 5).Formula = ActiveDocument.Comments(i).Initial
            .Cells(i + HeadingRow, 6).Formula = Format(ActiveDocument.Comments(i).Date, "dd/MM/yyyy")
            '        .Cells(i + 1, 3).Formula = ActiveDocument.Comments(i).Parent
            '        .Cells(i + 1, 3).Formula = ActiveDocument.Comments(i).Application
            '        .Cells(i + 1, 7).Formula = ActiveDocument.Comments(i).Author
        Next i
    End With
    Set xlWB = Nothing
    Set xlApp = Nothing
    End Sub
    

    Most valuable help from Microsoft Answers

提交回复
热议问题