基于VBA的Word自动排版_bate01_第1页
基于VBA的Word自动排版_bate01_第2页
基于VBA的Word自动排版_bate01_第3页
基于VBA的Word自动排版_bate01_第4页
基于VBA的Word自动排版_bate01_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、云南大学本科生毕业论文目录摘要1Abstract2第一章 绪论3第一节 自动排版应用背景3第二节 VBA概述3第三节 VBA在Word中的用途4一、定制4二、自动化4三、协作化4第四节 基于VBA的Word的自动排版的应用4一、统一格式4二、自动校验格式5三、自动进行格式纠正5四、对大文档和批量文档自动进行格式处理5第二章 Word VBA简介6第一节 Visual Basic编辑器简介6第二节 Word 对象简介6一、类和对象6二、Word对象7三、自动排版常用的Word对象7第三章 软件功能分析与设计8第一节 软件功能分析8一、自动排版功能8二、自动校验功能8第二节 软件功能设计8一、软件

2、功能层次模块图8二、自动排版模块功能设计及流程图9三、自动校验模块功能设计及流程图9第三节 图形化GUI界面及关键方法10一、图形化GUI界面设计10二、关键方法11第四章 软件运行实现与分析12第一节 程序导入和环境设置12一、程序导入12二、宏安全性设置12第二节 程序的运行及运行结果13一、程序启动和运行13二、程序的运行和界面介绍13三、预设格式说明14四、程序的运行和运行结果14第三节 结果分析和存在的问题18一、结果分析18二、存在问题18第五章 总结19结束语20致谢21参考文献22II摘要随着信息化时代的到来,在我们学习和工作过程中会有越来越多的文档需要处理,特别是对于大批量和

3、大文档而言,格式和版式的编排和检查将是一项非常繁杂和重复性的工作,会占用大量的时间和精力,而采用自动化排版技术可以轻松的解决这些问题。本文将采用Word VBA技术设计一个毕业论文自动排版和格式校验系统,通过VBA语言对VBA对象的调用和属性值的设置实现自动排版和格式自动校验的功能,解决大学师生在毕业论文自动排版和格式校验上耗费大量时间和精力的问题。本次设计的系统分为自动排版和自动格式校验两个模块,并设置了图形化GUI界面,方便用户使用。本论文分为四章,第一章介绍自动化排版研究的意义以及使用Word VBA技术的好处。第二章介绍VBA的一些基础知识,包括Visual Basic编辑器的介绍,V

4、BA基本语法的介绍,程序结构的介绍和VBA对象介绍。第三章是软件程序的详细需求分析以及软件模块的设计。第四章是软件的运行和结果分析,并对存在的问题进行了分析。第五章是对本次设计的总结。关键词:Word,VBA,自动排版AbstractWith the arrival of information age, in our study and work process will have more and more documents to deal with, especially for mass and big document is concerned, format and format

5、 layout and inspection will be a very multifarious and repetitive work, can take up a lot of time and energy, and use automation typesetting can easily solve these problems. This article will use the Word VBA technology to design a graduation thesis automatic layout and format calibration system, th

6、rough the VBA language to VBA the object's calling and attribute value realization of automatic layout and format setting the function of automatic calibration, solve university teachers and students in graduate thesis automatic layout and format calibration on wasted a lot of time and energy pr

7、oblems. The design of the system is divided into automatic typesetting and automatic format calibration two modules, and set a graphical GUI interface, and user-friendly. This paper is divided into four chapters. the first chapter presents automation typesetting significance of research and the bene

8、fits of using Word VBA technology. Chapter 2 introduces some Basic knowledge of VBA, including Visual Basic editor introduction, the introduction, Basic grammar VBA program structure is introduced and VBA object is introduced. The third chapter is software program requirements analysis and the detai

9、led design of software modules. The fourth chapter is the software operational and the results analyzed, and the existing problems are analyzed. Chapter 5 of this design is the summary. Key Word: Word,VBA ,Automatic layout第一章 绪论第一节 自动排版应用背景近年来大学毕业生数量在不断的增长,从2009年以来一直保持在600万以上的水平,也就是说每年大学的老师们都要对这600多

10、万的学生的每一个同学的毕业论文进行格式的检查,这是一件繁杂而重复的事。对于广大同学们来说,毕业论文格式和排版也同样是一个困扰着大家的问题,因为对毕业论文进行排版是一件繁杂的事情,而且用手工进行逐一编排,很容易出错。毕业论文格式和排版是一件困扰着广大师生的事情,毕业论文的格式常常五花八门,给老师的检阅和学生的排版都带来很大的不便。如果有一个工具能根据一定的格式要求,对学生的毕业论文进行自动排版,进行自动的格式校验,无疑会给广大师生带来很大的便利。而且有利于论文格式的统一和规范。其实不仅仅是在毕业论文的书写,在很多领域都需要进行大量文档的排版处理和格式校验,如果能够将这些排版交给软件自动进行,将这

11、些繁杂而又重复的工作交由电脑来处理,可以节约人力和物力,同时具有更高的效率和准确率。我们常用Microsoft Office Word 进行论文的书写和排版,除了文档编辑功能以外,微软公司还提供了一些编程接口用以扩展Office软件功能,例如:VBA就是其中之一。1我们可以用VBA使Word具有自动对文档进行处理的功能,从而实现自动排版。若要使用其它语言和平台编写一个自动排版的软件,将会是一个庞大的工程,而使用VBA可以很简单的就实现这些自动排版的功能,不仅易于编写,而且易于修改和使用。签于此,本次设计将使用VBA编写一个在Microsoft Office Word中可以对毕业论文进行自动排版

12、和格式校验的小软件工具。第二节 VBA概述Visual Basic for Applications(简称VBA)是新一代标准宏语言。在Office家族的早期版本中,各种应用程序,例如Word,Excel, Access都使用各自的语言来编辑宏,以对Office进行进一步的开发。2然而,在需要各种应用程序协同工作的时候,用户不得不考虑它们之间的兼容性,或者编制应用程序以提供接口。为了解决这个矛盾,微软开发了一种跨平台语言。与微软系统结合得最好的就是其自家产品VB( Visual Basic),VBA就是VB在各种应用程序下的应用。3VBA不但继承了VB的开发机制,而且VBA还具有与VB相似的语

13、言结构,它们的集成开发环境IDE(Integrated Development Environment)也几乎相同。4但是,经过优化之后,VBA还可以专门用于Office的各应用程序之中。VBA的项目(Project)仅由使用VBA的Excel,Word,PowerPoint等称为宿主(Host)的Office应用程序(Application)来调用。5第三节 VBA在Word中的用途VBA被称为宏语言,但是它绝不能和宏划上等号,宏是一条指令或者几条指令的集合,控制Word执行一连串的操作。而VBA则是不折不扣的高级语言,通过面向对象的方法来实现宏不能实现的功能。在编辑一个VBA宏的时候,Vi

14、sual Basic编辑器会将这个宏记录为一个VBA过程。6有人把一个应用程序比作生命,生命的活力在于进化,在于能够适应不同的环境。正是由于有了VBA才使得Word充满了活力。VBA使应用程序具有了生命的特征,以适应不同的环境,不同的应用。VBA这些激动人心的功能大致可以分成以下几个方面。一、定制VBA能使用户按照自己的习惯去定制应用程序,使应用程序更加人性化。用这个办法,可以使自己的工作效率提高很多。二、自动化VBA能实现自动化的功能,通过把一些重复性的工作用程序自动完成,从而解放你的双手。三、协作化VBA能提供对其他应用程序的控制能力,让用户在使用一个应用程序的时候能获取另一个应用程序提供

15、的帮助,大幅度地提高工作效率。第四节 基于VBA的Word的自动排版的应用自动化作为VBA在Word中一个重要的功能,能自动的完成一系列多而繁杂的重复性工作,这样即省力、省时,而且准确性很高,避免了由人工操作时的疏忽而造成的错误。同时自动化的应用能极大的将我们的时间和精力节约出来用于更重要更有创造力的事务上。自动化排版作为Word自动化的一个应用,能让人们更好的应用Word的文字处理和排版功能,从而提高办公效率,提升办公效果。具体的来说具有一下几个功能和优势。一、统一格式运用Word进行自动化排版,能自动使文档进行格式统一,而没有必要对每一段都进行格式编辑,而且能进行各种复杂的格式处理,极大的

16、提升了办公效率和办公效果。二、自动校验格式对大文档或是批量文档进行格式校验是一件极为繁琐的事情,而当这些文档具有统一的格式标准时,VBA就能自动帮你完成这项工作。不仅节约时间和精力,而且准确。三、自动进行格式纠正VBA不仅能自动为你完成文档格式的校验,而且还可以根据要求自动修正格式,不需要进行手工修改就能纠正文档格式,使文档格式统一。四、对大文档和批量文档自动进行格式处理对于一个小的单个文档进行不复杂的格式处理,可能并不需要用VBA进行处理,但是对于大文档或是批量文档要进行具有统一格式的格式处理时,用VBA进行自动排版,就能够避免用手工进行排版的繁琐。第二章 Word VBA简介第一节 Vis

17、ual Basic编辑器简介Microsoft Visual Basic编辑器是用来建立和管理VBA项目(VBA Project)的。在Visual Basic编辑器中,主要提供了工程资源管理器代码窗口、属性窗口等调试环境以帮助用户建立和管理应用程序。在Office2007中单击“开发工具> Visual Basic”打开Visual Basic编辑器,如下图所示。图2-1:打开Visual Basic编辑器随后出现的窗口就是VBA代码编辑器的界面,如下图所示。图2-2:Visual Basic编辑器界面第二节 Word 对象简介一、类和对象具有相同或相似性质的对象的抽象就是类。因此,对

18、象的抽象是类,类的具体化就是对象,也可以说对象是类的一个实例。7在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和方法(Methods),属性是需要记忆的信息,方法是对象能够提供的服务。在面向对象(Object Oriented) 的软件中,对象(Object)是某个类(Class)的实例(Instance)。8二、Word对象Word 提供了数百个您可与之交互的对象。这些对象排列在一个与用户界面密切相关的层次结构中。层次结构顶部的对象是Application对象。此对象表示Word 的当前实例。Application对象包含Document、Selection、Boo

19、kmark 和 Range对象。这些对象各自都有很多方法和属性,您可以访问这些方法和属性来操作对象或与对象交互。3下图显示了 Word 对象模型层次结构中这些对象的一个视图。3图2-7:Word 对象模型层次结构图三、自动排版常用的Word对象Font对象包含对象的字体属性(如字体名称、字号、颜色等)使用 Font 属性可返回Font对象。Font属性可以实现对所选的段落或片段文字进行字型、字号、颜色、是否加粗等的设置。如下列指令将选定内容的格式设置为加粗。4Selection.Font.Bold = TrueRange对象代表文档中的一个连续范围。每一个Range对象由一个起始和一个终止字符

20、位置定义。3ParagraphFormat对象可对一个或多个段落进行格式的设置,包括段落的对齐方式、行距、段前断后间距、大纲级别等的设置。可以使用New关键字来创建一个独立的新ParagraphFormat对象。3PageSetup对象代表页面设置说明。PageSetup对象包含了文档的所有页面设置属性(左边距、下边距、纸张大小等)。3HeaderFooter对象代表一个单独的页眉或页脚。HeaderFooter对象是 HeaderFooters集合的一个成员。HeaderFooters集合包含指定文档的某一节中所有的页眉和页脚。3第三章 软件功能分析与设计第一节 软件功能分析一、自动排版功能

21、该软件要实现根据指定格式对毕业论文进行自动排版,毕业论文的格式主要包括页面设置,字体格式的设置,段落对齐方式的设置,段前段后间距的设置以及段落级别的设置等。要实现上述的自动排版功能,必须先识别出当前段落是属于正文或是第几级标题,综上,对于自动排版的模块应该实现以下功能。1.自动识别段落是属于正文或是第几级标题。2.根据标题的级别和给定格式要求设置字体的字型、字体大小、是否加粗等。3.设置段落的大纲级别、对齐方式、段前段后间距等。4.对图片进行自动排版和编号。5.进行页面设置。6.设置页眉页脚。7.设置和添加目录。8.自动清除段前段后空白和空白行。9.在一级标题前进行分页操作。二、自动校验功能该

22、功能主要是对毕业论文的格式进行校验,以检查出一些容易被忽视的错误和问题,方便进行格式修正,具体应具有以下功能。1.自动识别段落是属于正文或是第几级标题。2.判断该段落的字体设置是否正确。3.判定该段落的段落设置是否正确。第二节 软件功能设计一、软件功能层次模块图将软件按照功能分为两个大的模块,分别为自动排版模块和自动校验模块,每个模块下有分成多个子模块来完成相应的功能。功能模块图如下所示。图3-1:软件功能模块图二、自动排版模块功能设计及流程图自动排版模块下有九个子模块,有些模块是相互独立的,有些模块是相互关联和引用的,后一个模块功能的实现需要前一个模块提供必要的信息,下图给出了通过段落级别识

23、别后进行段落的字体和段落格式设置的流程图。其中CheckP是一个根据匹配段首字符而判定段落级别的函数,FontType和PFormatType函数会根据CheckP检测出的段落级别对段落进行字体设置和段落设置。图3-2:字体和段落格式设置流程图三、自动校验模块功能设计及流程图自动校验格式模块下有段落级别检测、字体设置检查,段落设置检查和结果输出四个模块,自动校验格式模块的流程图如下所示。通过CheckP段落级别识别模块检测出当前段落应处的级别后,在CheckPForm中会根据检测出段落应处的级别查找到段落应有的字体格式和段落格式,并且和当前段落的字体格式的段落格式进行匹对,并保存结果,到检查完

24、毕后输出结果。图3-2:自动格式效验流程图第三节 图形化GUI界面及关键方法一、图形化GUI界面设计通过创建一个VBA窗体来创建一个简单的图形化界面,方便用户通过图形化GUI界面对使用程序,图形化GUI界面如下所示。图3-4:图形化GUI界面当单击窗体上的按钮时,会启动对应的子过程,在启动的这个子过程中通过调用相应的子过程来实现自动排版或是格式检查的功能。二、关键方法(一)、段落级别的自动识别通过匹配段首开头的文字或者是整个段落的文字,从而来识别该段落是标题还是正文,是一级标题还是二级标题。通过定义一个CheckP(i As Paragraph)子过程来实现这个功能,该函数从上一级接收一个段落

25、对象,对它进行匹配识别,然后返回该段落的级别。4(二)、段落和字体格式的设置在识别出一个段落的级别后,可以根据段落的级别对段落格式和字体格式进行设置,对应的子过程分别为FontType(t As Integer, i As Font) 和PFormatType(p As Integer, i As ParagraphFormat),其中p和t为这个段落的级别。在这两个子过程中会先调用一个对格式进行统一的子过程,相当于先进行格式化然后根据段落级别进行格式设置。7(三)、空白行的删除和段前断后空格的删除空白行的删除是通过逐段来计算当前段落的有效字符数,如果小于1则说明该段为空白段,进行删除操作。删

26、除段前断后空格是通过在段首和段尾进行查找和替换的方法来删除空格和无效字符的。9第四章 软件运行实现与分析第一节 程序导入和环境设置一、程序导入该程序制作完成后会产生一个窗体程序“WordVBAAuto.frm”和一个模块程序“自动排版程序.bas”,若要迁移到别的电脑上使用,则先要将这两个程序导出,然后到目标电脑上先启动Visual Basic编辑器,在资源管理器中公共模块Normal上右击,选择导入文件,将这两个文件导入,如下图所示。图4-1:导入文件二、宏安全性设置若是电脑宏安全性级别设置过高,则可能使Word禁止该宏的运行,这时需要在Word选项,信任中心,宏设置中设置宏的安全性级别,如

27、下图所示。图4-2:设置宏安全级别第二节 程序的运行及运行结果一、程序启动和运行该程序为了方便操作提供了一个可是化的图形界面GUI,通过工程资管理器窗口,双击WordVBAAuto或者在上面右击查看对象可以对窗口进行查看和编辑,此时点运行按钮可以运行该程序,如下图所示。图4-3:查看窗体对象二、程序的运行和界面介绍程序运行的界面如下所示:图4-4::程序运行界面其中“格式检查”为进行格式校验,单击后可对整个文档进行格式校验。“一键自动排版”可按预设的格式要求进行自动排版,其实就是右边小工具箱中一系列动作的组合。“退出”按钮单击后可退出窗体程序。要执行相应功能,单击相应按钮便可实现。三、预设格式

28、说明该程序在编写时参照云南大学本科生毕业论文(设计)撰写规范.doc进行了格式的预设,可通过修改代码相应位置实现格式的更改。具体预设格式为,一级标题(大标题)用宋体三号加粗,第一层次题序和标题用小三号宋体加粗;第二层次题序和标题用四号宋体加粗;第三层次及以下题序和标题与第二层次同;参考文献用宋体小五号;正文用小四号宋体。字体中文为宋体,西文为Times New Roman。段落标题按分三级处理,目录显示三级标题,一级标题居中,二、三级标题居左。图片居中,统一按“图#”进行编号。四、程序的运行和运行结果目录的自动生成,下图为未进行自动排版时的截图。图4-5:自动生成目录前的文档经过自动排版后,自

29、动生成了目录。图4-6:自动生成目录后的文档标题格式和字体格式的自动设置,以及格式的纠正,分页的设置和页眉页脚的设置。下图为未进行自动化排版时的截图,第一章与英文摘要相连,第一段将部分字体加粗和变成黑体,在第二段将段落行间距设为2.5倍。图4-7:未设置字体、段落和页眉页脚前的文档经过自动排版后自动添加了页眉页脚,标题编程宋体三号加粗,居中。并且自动添加了页眉页脚,而且正文一、二段的格式已变成了要求的规范格式,如下面两幅图所示。图4-8:设置页眉图4-9:设置字体、段落和页面页脚后的文档图片的自动排版和编号自动添加。图4-10:图片排版前的文档经过自动排版后,图片自动居中,并图一编制了“图#”

30、的自动编号。图4-11:图片排版后的文档自动排版完成后进行自动格式的检查,结果如下图所示。图4-12:格式检查结果把第二章的标题中的两个字去掉加粗设置,再进行格式检查,结果如下图所示。图4-13:格式检查结果第三节 结果分析和存在的问题一、结果分析该程序的自动排版模块能实现对毕业论文的自动排版功能,能根据预设的要求将毕业论文自动排版。能自动识别段落是属于正文或是哪级标题并根据标题的级别和给定格式的要求设置字体的字型、字体大小、是否加粗等以及段落的大纲级别、对齐方式、段前段后间距等的设置。对图片进行自动排版和编号,进行页面设置。设置页眉页脚,设置和添加目录,进行分页操作。自动清除段前段后空格和空

31、白行。该程序的自动检查模块能根据预设格式的要求对毕业论文进行基本的格式检查,能对大纲级别、字体型号和对齐方式等进行检查。二、存在问题在程序运行过程中,在段首段尾空格删除的时候采用逐一查找和替换的方式,致使程序运行是很缓慢。没能灵活的设置字体格式的界面,而需要采用通过源码修改而修改程序的方式,使程序变得不是太灵活。在格式检查过程中只能做简单的格式校验。第五章 总结本次设计通过设计一个自动排版和格式校验系统,实现初步的自动排版和格式校验功能。使用基于VBA的Word二次开发技术,通过调用VBA对象来对Word进行操作,从而实现自动排版和校验功能。通过这对个程序的设计和编写,熟悉了VBA对象,对自动

32、化排版和设计有了更为深入的理解,并能通过VBA书写一些Word的自动排版程序。通过了解VBA对象及其的使用方法,更为深入的了解整个Office VBA对象的使用,同时对面向对象编程也有了更深的了解。自动排版程序通过对Word VBA 对象的调用和对象属性的修改,使之按一定的要求和规范对格式进行排版,从而调整Word文档格式,其中主要涉及对字体格式进行设置的Font对象、对段落和大纲级别进行设置的Paragraph对象、对页眉和页脚进行设置的HeaderFooters对象以及目录和分页等进行设置的对象和属性。通过对这些对象的调用和属性值的修改,从而实现自动排版的功能。格式自动校验程序通过对VBA各个对象和属性值的查看而获得当前段落的格式,并和通过自动识别段落级别而计算出来的标准格式进行匹对和比较,从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论