一、问题背景
今天领导给了一个任务,一个若干页的公文,批量把里面的二级标题加粗。
二、解决思路
一是手动选中、加粗。二是通过正则选中加粗。三是通过VBA程序加粗。
三、具体实现
1.手动加粗,略。
2.正则加粗。
查找内容:(([一二三四五六七八九十]{1,})?{1,}。)
简单说一下,查找的内容分为了5段,第一段是左括号,第二段是括号里的中文数字,第三段是右括号,第四段任意字符,第五段是句号。注意,第一段和第3段是中文的括号,而最外层的括号是英文的括号,即整个表达式是包在一对英文括号里面。
ctrl+H,打开查找和替换对话框,按下图操作。在①处填写上面的字符串;在②处写“\1”,表示①处的通配符匹配到的内容本身,即不替换内容,只是把内容加粗;点击“更多”或“更少”,并在④处勾选“使用通配符”。 最后点击替换,即可。
3.使用VBA代码
Sub subTitleBold()
'20230506
'公文,把二级标题加粗,如“(二)某某加强政治学习”,最多可处理“(九十九)”
On Error Resume Next
Dim i As Integer, paph As Paragraph, str As String
For Each p In ActiveDocument.Paragraphs
str = p.Range.Text
i = InStr(1, str, "。")
If i And Left(str, 1) = "(" And (Mid(str, 3, 1) = ")" Or Mid(str, 4, 1) = ")" Or Mid(str, 5, 1) = ")") Then
ActiveDocument.Range(p.Range.Start, p.Range.Start + i).Font.Bold = True
End If
Next
End Sub
上面的代码只能处理手动编号。如果是自动编号,需要修改把ActiveDocument.Paragraphs修改为ActiveDocument.ListParagraphs,并且在定义新编号格式对话框中,把编号字体加粗。如下图所示:
记录分享,利人利己。欢迎各位高手留言指正。