Word VBA执行查找替换时如何为替换文本设置不同字号
Word VBA批量替换时设置替换文本字号的实现方法
Word的Find查找替换对象原生支持直接指定替换后的文本格式,无需替换完成后二次遍历修改内容,只需在执行替换操作前给Replacement对象配置对应字体属性即可,注意要提前清空格式残留,避免出现匹配异常、格式错乱的问题。
修改要点
- 调用
.ClearFormatting方法分别清空查找规则、替换规则的历史格式配置,避免继承上一次操作的格式限制导致漏替换。 - 通过
.Replacement.Font.Size属性指定替换后文本的字号,单位为磅,可按需调整数值(常用字号对应:五号=10.5磅、小四=12磅、四号=14磅)。 - 原有遍历页眉、循环读取工作表单元格的逻辑无需改动。
修改后完整代码
For Each footr In word_fichier.Sections(1).Headers With footr.Range.Find ' 清空查找、替换的格式残留 .ClearFormatting .Replacement.ClearFormatting ' 配置查找、替换文本 .Text = MaFeuille.Cells(j, 1) .Replacement.Text = MaFeuille.Cells(j, 2) ' 设置替换后文本字号,单位为磅,可按需修改数值 .Replacement.Font.Size = 12 ' 示例为12磅,对应小四字号 ' 执行全部替换 .Execute Replace:=wdReplaceAll End With Next footr Next j
可选扩展配置
如果需要同时调整替换后文本的其他字体格式,可以在.Replacement.Font下追加对应属性设置:
- 设置加粗:
.Replacement.Font.Bold = True - 设置字体颜色:
.Replacement.Font.Color = RGB(255, 0, 0)(示例为红色) - 设置字体名称:
.Replacement.Font.Name = "微软雅黑"
注意:如果是在Excel中编写VBA调用Word对象,运行时提示
wdReplaceAll变量未定义的话,可以在模块开头加常量定义Const wdReplaceAll As Integer = 2,或者直接把代码里的wdReplaceAll替换为数值2即可。
内容的提问来源于stack exchange,提问作者julien1h
相关产品推荐
相关产品推荐

