摘抄自網絡的一些代碼,以備后用,部分也有修改。
部分來源於:
https://zhuanlan.zhihu.com/p/35695960
Sub 設置每一級樣式格式() With ActiveDocument.Styles(wdStyleHeading1).Font .Color = wdColorBlack .Bold = False '標題不再加粗 .Size = 22 '二號 .Name = "方正小標宋簡體" End With With ActiveDocument.Styles(wdStyleHeading2).Font .Color = wdColorBlack .Bold = False '黑體一般不再加粗 .Size = 16 '三號 .Name = "黑體" End With With ActiveDocument.Styles(wdStyleHeading3).Font .Color = wdColorBlack .Bold = True .Size = 16 .Name = "楷體_GB2312" End With With ActiveDocument.Styles(wdStyleHeading4).Font .Color = wdColorBlack .Bold = True .Size = 16 .Name = "仿宋_GB2312" End With With ActiveDocument.Styles(wdStyleHeading5).Font .Color = wdColorBlack .Bold = False .Size = 16 .Name = "仿宋_GB2312" End With With 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 = wdStyleHeading2 ib.OutlineLevel = wdOutlineLevel2 End If With ib.Range.Sentences(1).Font 'ib.Range.Font .ColorIndex = wdColorBlack .Bold = False '黑體一般不再加粗 .Name = "黑體" .Size = 16 End With ElseIf ib.Range Like "([一二三四五六七八九十百零千])*" Then '類似 (一)開頭的三級標題 If ib.Range.Sentences.Count = 1 Then 'ib.Range.Style = wdStyleHeading3 ib.OutlineLevel = wdOutlineLevel3 End If With ib.Range.Sentences(1).Font .ColorIndex = wdColorBlack .Bold = True .Name = "楷體_GB2312" .Size = 16 End With ElseIf ib.Range Like "[0-9][、..]*" Then '類似 1、或1.開頭的四級標題 If ib.Range.Sentences.Count = 1 Then 'ib.Range.Style = wdStyleHeading4 ib.OutlineLevel = wdOutlineLevel4 End If With ib.Range.Sentences(1).Font .ColorIndex = wdColorBlack .Bold = True .Name = "仿宋_GB2312" .Size = 16 End With ElseIf ib.Range Like "([0-9])*" Then '類似(1)開頭的五級標題 If ib.Range.Sentences.Count = 1 Then 'ib.Range.Style = wdStyleHeading5 ib.OutlineLevel = wdOutlineLevel5 End If With ib.Range.Sentences(1).Font .ColorIndex = wdColorBlack .Bold = True .Name = "仿宋_GB2312" .Size = 16 End With End If End Sub