You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VBA修改Microsoft Word中特定单词的字体颜色

Word VBA修改特定单词字体颜色实现方案

以下提供两种针对性的实现方案,均不需要修改原文本内容,仅调整目标单词的字体颜色:

方案1:查找替换改格式(适合全文档批量处理,执行效率高)

该方案直接调用Word原生查找替换能力,仅修改匹配项格式,不改动文本内容,适合大文档快速批量处理:

Sub 批量修改指定单词颜色()
    ' 自定义参数,可根据需求修改
    Const TARGET_WORD As String = "hello" ' 要修改的目标单词
    Const TARGET_COLOR As WdColor = wdColorRed ' 目标颜色,也可使用RGB函数,比如RGB(255, 0, 0)
    
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Text = TARGET_WORD
        .MatchWholeWord = True ' 开启全字匹配,避免匹配到包含该字符串的其他单词
        ' 如需区分大小写,可新增一行 .MatchCase = True
        .Replacement.ClearFormatting
        .Replacement.Font.Color = TARGET_COLOR
        ' 开启格式替换,文本保持不变,全量替换所有匹配项
        .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, Format:=True
    End With
End Sub

方案2:遍历匹配Range(适合自定义场景,灵活性更高)

如果需要对匹配到的单词做更多自定义操作(比如同时修改字号、加高亮、仅修改指定章节的目标单词),可以用该方案将匹配到的区域存入变量后单独处理:

Sub 自定义修改指定单词颜色()
    Dim targetWord As String: targetWord = "hello" ' 目标单词
    Dim searchRange As Range
    Dim matchRange As Range
    
    ' 自定义搜索范围:如需仅搜索第3段,可改为 Set searchRange = ActiveDocument.Paragraphs(3).Range
    Set searchRange = ActiveDocument.Content
    
    With searchRange.Find
        .ClearFormatting
        .Text = targetWord
        .MatchWholeWord = True ' 全字匹配
        ' 循环查找所有匹配项
        Do While .Execute() = True
            ' 存储匹配到的区域,可自由修改格式
            Set matchRange = searchRange.Duplicate
            matchRange.Font.Color = RGB(0, 0, 255) ' 修改为蓝色
            ' 额外操作示例:添加黄色高亮
            ' matchRange.HighlightColorIndex = wdYellow
        Loop
    End With
End Sub

注意事项

  • 不需要全字匹配时,删除.MatchWholeWord = True配置即可
  • 内置wdColor常量不满足需求时,直接用RGB(红, 绿, 蓝)自定义颜色即可,三个参数取值范围均为0-255

内容的提问来源于stack exchange,提问作者RickyLo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:36:03