使用 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
以下查找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