MicrosoftWord2010下的VBA宏:生成标题提纲

编写本脚本的Office版本:Microsoft Office 2010

本段脚本,可以用来生成一个需求分析文档的提纲:

在上方的“视图→宏(最右边)→查看宏”中,创建一个宏,添加如下代码:

‘宏名称:DemandAnalysis
‘宏功能:生成需求分析模版
Sub DemandAnalysis()

    ‘设置标题自动编号
    SetNumber
    
    WriteTitle "需求分析文档"
    
    ‘文档适用范围
    WriteHeadline "文档适用范围", 1
    WriteWord "在这里输入正文"
    
    ‘总体要求
    WriteHeadline "总体要求", 1
    WriteWord "在这里输入正文"
    WriteHeadline "总体功能要求", 2
    WriteWord "在这里输入正文"
    WriteHeadline "软件开发平台要求", 2
    WriteWord "在这里输入正文"
    WriteHeadline "软件项目的开发实施过程管理要求", 2
    WriteWord "在这里输入正文"
    WriteHeadline "软件项目实施过程总体要求", 3
    WriteWord "在这里输入正文"
    WriteHeadline "软件项目实施变更要求", 3
    WriteWord "在这里输入正文"
    WriteHeadline "软件项目实施里程碑控制", 3
    WriteWord "在这里输入正文"
    
    ‘软件开发
    WriteHeadline "软件开发", 1
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的需求分析", 2
    WriteWord "在这里输入正文"
    WriteHeadline "需求分析", 3
    WriteWord "在这里输入正文"
    WriteHeadline "需求分析报告的编制者", 3
    WriteWord "在这里输入正文"
    WriteHeadline "需求报告评审", 3
    WriteWord "在这里输入正文"
    WriteHeadline "需求报告格式", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的概要设计", 2
    WriteWord "在这里输入正文"
    WriteHeadline "概要设计", 3
    WriteWord "在这里输入正文"
    WriteHeadline "编写概要设计的要求", 3
    WriteWord "在这里输入正文"
    WriteHeadline "概要设计报告的编制者", 3
    WriteWord "在这里输入正文"
    WriteHeadline "概要设计和需求分析、详细设计之间的关系和区别", 3
    WriteWord "在这里输入正文"
    WriteHeadline "概要设计的评审", 3
    WriteWord "在这里输入正文"
    WriteHeadline "概要设计格式", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的详细设计", 2
    WriteWord "在这里输入正文"
    WriteHeadline "详细设计", 3
    WriteWord "在这里输入正文"
    WriteHeadline "特例", 3
    WriteWord "在这里输入正文"
    WriteHeadline "详细设计的要求", 3
    WriteWord "在这里输入正文"
    WriteHeadline "数据库设计", 3
    WriteWord "在这里输入正文"
    WriteHeadline "详细设计的评审", 3
    WriteWord "在这里输入正文"
    WriteHeadline "详细设计格式", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的编码", 2
    WriteWord "在这里输入正文"
    WriteHeadline "软件编码", 3
    WriteWord "在这里输入正文"
    WriteHeadline "软件编码的要求", 3
    WriteWord "在这里输入正文"
    WriteHeadline "编码的评审", 3
    WriteWord "在这里输入正文"
    WriteHeadline "编程规范及要求", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的测试", 2
    WriteWord "在这里输入正文"
    WriteHeadline "软件测试", 3
    WriteWord "在这里输入正文"
    WriteHeadline "测试计划", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的交付准备", 2
    WriteWord "在这里输入正文"
    WriteHeadline "交付清单", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "软件的鉴定验收", 2
    WriteWord "在这里输入正文"
    WriteHeadline "软件的鉴定验收", 3
    WriteWord "在这里输入正文"
    WriteHeadline "验收人员", 3
    WriteWord "在这里输入正文"
    WriteHeadline "验收具体内容", 3
    WriteWord "在这里输入正文"
    WriteHeadline "软件验收测试大纲", 3
    WriteWord "在这里输入正文"
    
    WriteHeadline "培训", 2
    WriteWord "在这里输入正文"
    WriteHeadline "系统应用培训", 3
    WriteWord "在这里输入正文"
    WriteHeadline "系统管理的培训", 3
    WriteWord "在这里输入正文"
    
    ‘附录
    ‘WriteHeadline "附录A", 1
    ‘WriteWord "在这里输入正文"
    
End Sub

‘例程:设置标题自动编号
Sub SetNumber()

    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = "%1"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(0.76)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 1"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(2)
        .NumberFormat = "%1.%2"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.02)
        .TabPosition = wdUndefined
        .ResetOnHigher = 1
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 2"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(3)
        .NumberFormat = "%1.%2.%3"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.27)
        .TabPosition = wdUndefined
        .ResetOnHigher = 2
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 3"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(4)
        .NumberFormat = "%1.%2.%3.%4"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.52)
        .TabPosition = wdUndefined
        .ResetOnHigher = 3
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 4"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(5)
        .NumberFormat = "%1.%2.%3.%4.%5"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.78)
        .TabPosition = wdUndefined
        .ResetOnHigher = 4
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 5"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(6)
        .NumberFormat = "%1.%2.%3.%4.%5.%6"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(2.03)
        .TabPosition = wdUndefined
        .ResetOnHigher = 5
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 6"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(7)
        .NumberFormat = "%1.%2.%3.%4.%5.%6.%7"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(2.29)
        .TabPosition = wdUndefined
        .ResetOnHigher = 6
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 7"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(8)
        .NumberFormat = "%1.%2.%3.%4.%5.%6.%7.%8"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(2.54)
        .TabPosition = wdUndefined
        .ResetOnHigher = 7
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 8"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(9)
        .NumberFormat = "%1.%2.%3.%4.%5.%6.%7.%8.%9"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(2.79)
        .TabPosition = wdUndefined
        .ResetOnHigher = 8
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 9"
    End With
        
End Sub

‘例程:书写文章大标题
Sub WriteTitle(Word As String)

    Selection.Font.Name = "黑体"
    Selection.Font.Size = 24
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Selection.TypeText Text:=Word
    Selection.TypeParagraph

End Sub

‘例程:书写“标题 1”-“标题 6”
Sub WriteHeadline(Word As String, Level As Integer)

    Selection.Style = ActiveDocument.Styles("标题 " & Level)
    ActiveWindow.DocumentMap = True
    Selection.TypeText Text:=Word
    Selection.TypeParagraph

End Sub

‘例程:书写正文
Sub WriteWord(Word As String)

    Selection.Font.Name = "宋体"
    Selection.Font.Size = 10.5
    Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
    Selection.TypeText Text:="    " & Word ‘自然段前要加空格
    Selection.TypeParagraph
    
End Sub

‘例程:清空全部文字(测试例程)
Sub Clean()
    
    Selection.WholeStory
    Selection.TypeBackspace
    
End Sub

运行后就可以生成一个自动编号标题的需求分析文档了

如果要把这段代码用于生成其他的文档标题提纲,只需要在例程(Sub)DemandAnalysis()中,调用如下的函数:

1)SetNumber:调用SetNumber例程,为标题自动编号。这个例程在开始调用且仅调用一次

2)WriteTitle:例程,用于撰写居中的标题,在该例程中可以设置标题的字体等样式

3)WriteHeadline:例程,撰写标题,第一个参数为标题的文字,第二个参数是一个数字,代表了标题的级别(1级标题字体最大)

4)WriteWord:例程,撰写正文

END

时间: 2024-10-15 22:39:31

MicrosoftWord2010下的VBA宏:生成标题提纲的相关文章

MicrosoftExcel2013下的VBA宏:生成程序修改单

注意: 1.这段宏是在MicrosoftOfficeStandard2013下撰写和调试的.用在其他Office版本中可能需要适当修改 2.保存带有宏的Excel表格,应该保存为*.xlsm格式(启用宏的工作簿) 关于本宏的用途 现在修改了一个程序的若干个模块,每个模块修改了若干个文件,现在要用一个EXCEL表格总结修改的文件信息.工作簿中每个模块(Sheet)都要有标题,修改单中每个文件都要有文件名.SVN上地址.修改说明本宏用于快速生成一个表格结构,这样在之后使用时只要傻瓜化地向表格中添加文

[转]Linux下用gcc/g++生成静态库和动态库(Z)

Linux下用gcc/g++生成静态库和动态库(Z) 2012-07-24 16:45:10|  分类: linux |  标签:链接库  linux  g++  gcc  |举报|字号 订阅 在 linux 下,库文件一般放在 /usr/lib 和 /lib 下, 静态库的名字一般为 libxxxx.a ,其中 xxxx 是该 lib 的名称 动态库的名字一般为 libxxxx.so.major.minor , xxxx 是该 lib 的名称, major 是主版本号, minor 是副版本号

Android项目中gen文件下R文件无法生成的解决的方法

帮一个网友解决R文件无法生成的问题,搜集了些材料特整理例如以下,刚開始学习的人參考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen文件夹无法更新,或者gen文件夹下的R.JAVA文件无法生成 1.gen文件夹的用处 android gen文件夹下的R.java并非由用户创建,而是androidproject本身将android的资源进行自己主动"编号"(ID)值. 2.gen文件夹下R文件无法更新/生成的原因 1)res文件夹下的layout下的xml文件名

oc将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接

/* 将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接(10分) 如传入:@"good_good_study_good_study" 返回:@"good_study" 如传入:@"I_love_I_hate_love_love" 返回:@"love_I_hate" */ 方法1:选择排序 -(NSString *)sortStringByNumbe

命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法

在学习NDK中,当我在项目的bin/classes目录下使用javah命令生成头文件时,出现了“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”这个问题,如下 跳转到项目的src目录下使用javah命令,而不是在项目的bin/classes目录下使用javah命令即可! 无法访问android.app.Activity是说明没有引入android.jar包可以看看java -h里面的具体说明.其中有一个-bootclasspath

Linux系统下动态库的生成

Linux系统下动态库的生成 一.简述 Linux下动态库文件的扩展名为 ".so"(Shared Object).按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号).这样,线程函数库被称作libthread.so.静态库的文件名形式是libname.a.共享archive的文件名形式是libname.sa.共享archive只是一种过渡形式,帮助人们从静态库转变到动态库.      小编综合自己学习体会以及网络上较好的内容,以简单的例子介绍动态库文件的生

Android项目中gen文件下R文件无法生成的解决办法

帮一个网友解决R文件无法生成的问题,搜集了些材料特整理如下,初学者参考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自动"编号"(ID)值. 2.gen目录下R文件无法更新/生成的原因 1)res目录下的layout下的xml文件名有错.按照android的命名规范是

Linux下c基于openssl生成MD5的函数

Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数. 具体代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include "stdio.h" #include <string.h> #include <stdlib.h&

ubuntu下core file文件生成及调试

1.简介:corefile 是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息. 2.corefile的设置 默认情况下,程序崩溃是不会生成corefile的,因为被操作系统限制.可以通过命令: ulimit -c 来查看,如果值为0则表示被限制了,所以不能生成corefile文件. 如果要使用corefile文件分析程序和系统异常信息,可以通过如下命令打开,其中unlimited表示corefile文件的大小无限制. $ ulimit -c u