Sub 设置每一级样式格式()With ActiveDocument.Styles(wdStyleHeading1).Font.Color = wdColorBlack.Bold = False '标题不再加粗.Size = 22 '二号.Name = "方正小标宋简体"End WithWith ActiveDocument.Styles(wdStyleHeading2).Font.Color = wdColorBlack.Bold = False '黑体一般不再加粗.Size = 16 '三号.Name = "黑体"End WithWith ActiveDocument.Styles(wdStyleHeading3).Font.Color = wdColorBlack.Bold = True.Size = 16.Name = "楷体_GB2312"End WithWith ActiveDocument.Styles(wdStyleHeading4).Font.Color = wdColorBlack.Bold = True.Size = 16.Name = "仿宋_GB2312"End WithWith ActiveDocument.Styles(wdStyleHeading5).Font.Color = wdColorBlack.Bold = False.Size = 16.Name = "仿宋_GB2312"End WithWith ActiveDocument.Styles(wdStyleNormal).Font '设置正文普通文字格式.Color = wdColorBlack.Bold = False.Size = 16.Name = "仿宋_GB2312"End With
End Sub
调用类似
.Range.Style = wdStyleNormal '注意:设置为模板,如果将内容复制到其他word,会变成目标word所设置wdStyleNormal式样,和源不同。
但是有两个弊端,一是将内容复制到另外一份word文档的时候,会变成目标word所设置的式样。二是大纲标题有点,不适合公文等场合(或许可以设置去掉,不过我不知道)。
于是便手工设置:
Sub 设置每一级标题格式(ib As Paragraph)
'注意:标题后面可能不换行直接跟着内容,所以对第一句设置,而不是整段。
'注意:如果设置为模板,将内容复制到其他word,会变成目标word所设置wdStyleNormal式样,和源不同。
'规则:如果只有一句话,才设置大纲级别,否则不设置。If ib.Range Like "[一二三四五六七八九十百零千]、*" Or ib.Range Like "[一二三四五六七八九十百零千]、*。*" Then'类似 一、开头的二级标题If ib.Range.Sentences.Count = 1 Then'ib.Range.Style = wdStyleHeading2ib.OutlineLevel = wdOutlineLevel2End IfWith ib.Range.Sentences(1).Font 'ib.Range.Font.ColorIndex = wdColorBlack.Bold = False '黑体一般不再加粗.Name = "黑体".Size = 16End WithElseIf ib.Range Like "([一二三四五六七八九十百零千])*" Then'类似 (一)开头的三级标题If ib.Range.Sentences.Count = 1 Then'ib.Range.Style = wdStyleHeading3ib.OutlineLevel = wdOutlineLevel3End IfWith ib.Range.Sentences(1).Font.ColorIndex = wdColorBlack.Bold = True.Name = "楷体_GB2312".Size = 16End WithElseIf ib.Range Like "[0-9][、..]*" Then'类似 1、或1.开头的四级标题If ib.Range.Sentences.Count = 1 Then'ib.Range.Style = wdStyleHeading4ib.OutlineLevel = wdOutlineLevel4End IfWith ib.Range.Sentences(1).Font.ColorIndex = wdColorBlack.Bold = True.Name = "仿宋_GB2312".Size = 16End WithElseIf ib.Range Like "([0-9])*" Then'类似(1)开头的五级标题If ib.Range.Sentences.Count = 1 Then'ib.Range.Style = wdStyleHeading5ib.OutlineLevel = wdOutlineLevel5End IfWith ib.Range.Sentences(1).Font.ColorIndex = wdColorBlack.Bold = True.Name = "仿宋_GB2312".Size = 16End WithEnd If
End Sub