我目前正在使用 VBA 为 Word 编写一个小宏来扫描报告并突出显示所有交叉引用。现在突出显示作为引用的 TypeFields 非常容易。 我似乎无法弄清楚如何定位引用图像的标题。我不希望它们相互连接(还没有),但即使只是找到它们似乎也是不可能的。 我现在想知道,是否有可能定位这些小标题,或者我是否只是遗漏了 VBA 文档中的某些内容。
我尝试使用 InlineShapes.Caption,但没有任何结果(InlineShapes 工作正常,我可以调整大小和删除图像没有问题)。我也尝试过只选择标题,但使用选择后我只是再次得到图像。我还尝试通过 InlineShape.Text 提取标题,但没有结果。还有InlineShape.Caption.Text、InlineShape.CaptionLabel.Text,这些都是无法识别的对象(如果我没记错的话,我尝试了这么多)
这是我想出的小代码,它查找引用,突出显示它们,以及删除图像。
Sub ReferenceHighlight()
'Define the range as the whole document
Dim docRange As Range
Set docRange = ActiveDocument.Range
'Define all Fields in the Document
Dim fld As Word.Field
'Define an incremental integer
Dim i As Integer
i = 1
'Define all Pictures in the Document
Dim image As InlineShape
For Each image In docRange.InlineShapes
image.Delete
Next image
For Each fld In docRange.Fields
If fld.Type = wdFieldRef Then
fld.Result.HighlightColorIndex = wdYellow
End If
Next fld
End Sub
请尝试一下。
For Each fld In docRange.Fields
If fld.Type = wdFieldRef Then
fld.Select
Selection.Expand xlLine
Selection.Range.HighlightColorIndex = wdYellow
End If
Next fld