网站建设 实训题,重装wordpress图片不见,宝塔一键迁移WordPress,网站结构和布局区别因为主标题和副标题一般都是包含一两句子的段落#xff0c;所以参数直接传入Paragraph。至于判断主副标题的规则则外面调用部分再做判断。
Sub 设置主标题格式(ib As Paragraph)With ActiveDocument.Paragraphs(1).Range.Style ActiveDocument.Styles(wdStyleHeading1)设置为…因为主标题和副标题一般都是包含一两句子的段落所以参数直接传入Paragraph。至于判断主副标题的规则则外面调用部分再做判断。
Sub 设置主标题格式(ib As Paragraph)With ActiveDocument.Paragraphs(1).Range.Style ActiveDocument.Styles(wdStyleHeading1)设置为标题1.ParagraphFormat.Alignment wdAlignParagraphCenter 居中.ParagraphFormat.SpaceAfter 0.ParagraphFormat.SpaceBefore 0.ParagraphFormat.LineSpacingRule wdLineSpaceAtLeast.ParagraphFormat.LineSpacing Word.Application.LinesToPoints(0)With ib.Format.Reset 有必要如果原来段首缩进2字符的话那么设置居中也会缩进2字符造成不是居中.OutlineLevel wdOutlineLevel1 设置大纲1级.Alignment wdAlignParagraphCenter设置行间距Word.Application.LinesToPoints(1) 是设置为段后1行的高度不是标题下方空一行后面采取空一行的方式.SpaceAfter 0 12 设置段后一行的高度.SpaceBefore 0 12.LineSpacingRule wdLineSpaceAtLeast 行间距设置为最小值.LineSpacing Word.Application.LinesToPoints(0) 最小值0。TODOM$ word下会报错设置字体.Range.Font.ColorIndex wdBlack.Range.Font.Bold False.Range.Font.Name 方正小标宋简体.Range.Font.Size 22End With
End SubSub 设置副标题格式(ib As Paragraph)With ib.Format.Reset.CharacterUnitFirstLineIndent 0.Alignment wdAlignParagraphCenter.SpaceAfter 0.SpaceBefore 0.LineSpacingRule wdLineSpaceExactly.LineSpacing Word.Application.LinesToPoints(2.5) 1行的高度为12磅2.5行就是30磅设置字体.Range.Font.ColorIndex wdBlack.Range.Font.Bold False.Range.Font.Name 楷体_GB2312.Range.Font.Size 16End With
End Sub调用主标题和副标题设置并且在标题下方增加一空行注意不是段后一行的高度两者不是一回事。
设置标题行。默认为第一段为标题不考虑标题用换行符分行的情形格式化好后手工分行即可
Call 设置主标题格式(ActiveDocument.Paragraphs(1))设置副标题如果第二段不是空行且不是以句号或者冒号报告类公文结尾那么认为是副标题或单位名称发言材料等文体
If Len(ActiveDocument.Paragraphs(2).Range.Text) 1 _And ActiveDocument.Paragraphs(2).Range.Characters.Last.Previous 。 _And ActiveDocument.Paragraphs(2).Range.Characters.Last.Previous ThenCall 设置副标题格式(ActiveDocument.Paragraphs(2))公文如果标题的下一行多于1个字符换行符算1个字符那么就插入一空行否则不用。If Len(ActiveDocument.Paragraphs(2).Next.Range.Text) 1 ThenActiveDocument.Paragraphs(2).Range.InsertParagraphAfter 在当前文档的第一段之后插入一个新段落End IfElseIf Len(ActiveDocument.Paragraphs(1).Next.Range.Text) 1 ThenActiveDocument.Paragraphs(1).Range.InsertParagraphAfter 在当前文档的第一段之后插入一个新段落
End If主副标题判断的逻辑见注释。
需要注意的是上述代码对于只有两个或以内段落的文档而言会报错因为标题下方插入空行需要判断第三行如果没有第三行自然会出错。