使用 C# 或 VBA 查找 MS Word 文档中突出显示文本的背景颜色

Find out background color of highlighted text in MS Word document using C# or VBA

以下查找Word文档中高亮显示的文字(即使不同地方的不同文字用不同的颜色高亮显示)。我们如何找出每个突出显示的文本的背景颜色。我正在使用 C#,但 VBA 也可以:

With ActiveDocument.Range.Find
  .Highlight = True
  While .Execute
    Debug.Print .Parent.Text
  Wend
End With

下面的语句将为您提供 MS Word 中所选文本的颜色索引

Dim objSelection As Selection
Set objSelection = Application.Selection
Msgbox objSelection.FormattedText.HighlightColorIndex

返回的值是 wdColorIndex 枚举之一。枚举中的值列表可以在这里看到 https://msdn.microsoft.com/en-us/library/bb237561(v=office.12).aspx

更新#1

下面的代码根据要求使用 ActiveDocument.Range.Find

Dim objSelection As Selection
Dim temp As String

With ActiveDocument.Range.Find
  .Highlight = True
  While .Execute
    'Store the text for searching later
    temp = .Parent.Text

    'Select all the text
    ActiveDocument.Content.Select

    'Find and select the text
    With Selection.Find
        .Text = temp
    End With

    If Selection.Find.Execute Then
        Selection.Select
    End If

    'Now that we've selected it, get the HighlightedColorIndex
    Set objSelection = .Application.Selection
    MsgBox .Parent.Text & vbNewLine & "Index: " & objSelection.FormattedText.HighlightColorIndex
  Wend
End With