找到大写文本并将其设置为粗体



我希望有一个适用于 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

"<[A-Z]{1,}>"表示以下内容:

  • "<"表示从单词开头开始的匹配
  • "[]"表示匹配括号内的字符之一
  • "[A-Z]" A-Z 部分在括号内时表示大写字母 A 到 Z
  • "{1,}"表示至少匹配前面一次(在这种情况下,大写字母必须至少在一行中出现一次)
  • ">"表示匹配必须在单词末尾结束。 模式不匹配,例如"THI",因为大写字母不放在单词的末尾。

您必须处理的一个警告是单字母单词 - I 和 A 将使用此模式方案加粗。 您可能会发现创建与整组大写单词匹配的模式更容易,但您仍然必须找到一种方法来处理前导或尾随大写单字母单词。

如果您有任何疑问,请发表评论,我可以尝试进一步解释。

最新更新