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

后端 未结 2 651
梦谈多话
梦谈多话 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:03

    I found someone on another site to solve this question.

    The key to the solution is: cmt.Scope.FormattedText

    Here is the function revised:

    Sub ExportComments()
        Dim s As String
        Dim cmt As Word.Comment
        Dim doc As Word.Document
    
        For Each cmt In ActiveDocument.Comments
            s = s & "Text: " & cmt.Scope.FormattedText & " -> "
            s = s & "Comments: " & cmt.Initial & cmt.Index & ":" & cmt.Range.Text & vbCr
        Next
    
        Set doc = Documents.Add
        doc.Range.Text = s
    End Sub
    
    0 讨论(0)
  • 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

    0 讨论(0)
提交回复
热议问题