VBA操作WORD(七)设置每一级大纲式样

复制代码
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
相关推荐
http阿拉丁神猫3 小时前
Go语言入门笔记:从基础到开发环境搭建(二)
开发语言·笔记·golang
不会就选b4 小时前
C++补充部分(一)--lambda 表达式
开发语言·c++
Pniubi6 小时前
HashMap的扩容和树化边界
java·开发语言
gCode Teacher 格码致知8 小时前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas
发量惊人的中年网工8 小时前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
下页、再停留8 小时前
【C#桌面客户端系列学习-15】生成可视化图表之折线图、柱状图、饼状图
开发语言·c#
ShineWinsu9 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
益莱储中国10 小时前
深度解析:RF 实验室从 5G迈向 6G 的过程中保持技术领先与设备升级的路径
开发语言·php
benchmark_cc11 小时前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu11 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python