VBA脚本:查找大写文本并使其变为粗体

时间:2013-11-12 22:35:30

标签: vba replace word-vba cap

我希望有一个可以在WORD 2003上运行的宏代码。我有以下文字:

  

这是从这里继续的句子的开始。

我想将大写文字加粗:

  

这是从这里继续的句子的开始

据我所知,如果粗体文本的文本格式为“AllCaps”,那么这将是微不足道的,但事实并非如此。它是使用大写锁定创建的。

有什么想法吗?我可以了解它,但我无法弄清楚如何在VBA代码中添加复杂的查找和替换。

1 个答案:

答案 0 :(得分:5)

您想要的是Regular Expressions,其Word provides位于其查找功能的高级部分。

以下是一个快速示例:

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,}&gt;” 中表示以下内容:

  • “&LT;”表示从单词开头开始匹配
  • “[]”表示匹配括号内的其中一个字符
  • “[A-Z]”A-Z部分,当在括号内时,表示大写字母A到Z
  • “{1,}”表示至少匹配前面一次(在这种情况下,大写字母必须至少连续出现一次)
  • “&gt;” 中表示匹配必须在单词的结尾处结束。模式不匹配,例如“THIs”,因为大写字母不会到达单词的末尾。

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

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