我希望有一个可以在 WORD 2003 上运行的宏代码。我有如下文本:
这是从这里继续的句子的开头。
我想让大写的文本加粗:
这是从这里继续的句子的开头。
我知道如果粗体文本的文本格式为“AllCaps”,这将是微不足道的,但事实并非如此。它是使用大写锁定创建的。
有任何想法吗?我可以开始,但我不知道如何在 VBA 代码中添加复杂的查找和替换。
你想要的是正则表达式,它是Word在其查找功能的高级部分中提供的。
这是一个快速示例:
Public Sub Test()
With ActiveDocument.Content.Find
.Text = "<[A-Z]{1,}>"
.MatchWildcards = True
.MatchCase = True
.Replacement.Font.Bold = True
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
End Sub
“<[AZ]{1,}>”的含义如下:
您必须处理的一个警告是单字母单词 - I 和 A 将使用这种模式方案加粗。您可能会发现创建匹配整组大写单词的模式更容易,但您仍然必须找到一种方法来处理前导或尾随的大写单字母单词。
如果您有任何疑问,请发表评论,我可以尝试进一步解释。