基于VBA技术的一键公文自动排版的实现
王超
【摘 要】对于长期从事政务公文编排的人员来说,排版虽不难,但设置的步骤多、易出错、费时、费力、效率低.利用VBA技术构建并实现一键公文自动排版,其满足了政务公文排版的需求,同时可减轻编排人员的工作量,并且提供标准化、规范化的公文排版格式.已应用于临泉县部分机关事业单位的日常公文编排工作中,效果良好.
【期刊名称】《淮海工学院学报(自然科学版)》
【年(卷),期】2015(024)003
【总页数】5页(P42-46)
【关键词】Word;VBA;公文;自动;排版
【作 者】王超
【作者单位】中共临泉县委党校,安徽临泉236400
【正文语种】中 文
【中图分类】TP319
0 引言
Word软件虽有强大的文字处理能力,但在政务公文编排中只能运用它的基本功能进行手工操作.因此,需要增加一个能够实现一键公文自动排版的功能,使编排人员在排版上不花太多时间,公文排版就能自动实现.
1 目前公文排版的方式及存在问题
政务公文版式设置有一定的严格规范要求.在无纸化办公的今天,依然利用Word软件的基本功能一步一步地操作来实现公文排版,对长期从事公文编排人员来说,排版过程虽然不难,但经常花许多时间来设置文档的页面、字体、字号、段落等格式,操作的步骤多,费时、费力、易出错、效率低.因此,需要一个自动排版功能实现公文格式设置的标准化、规范化,从而减轻公文编排人员的工作量,提高工作效率.因此,实现公文自动排版功能的系统应运而生.
2 关键技术VBA
VBA是新一代标准宏语言Visual Basic for Applications(简称VBA),它是VB的一个分支.VBA必须在宿主类程序(如MS Office)中才能使用[1].在办公软件 MS Office中,它具有强大的控制对象的能力、功能的扩展以及定制能力;突破了MS Office极限,完成MS Office本身无法完成的功能.VBA技术与Word文档完美结合,用户可以随心所欲地操作文档中的内容,使这些操作做到自动化、交互化、规范化.总之,VBA嵌入在MS Office中的重大意义在于它对应用程序的控制,以及增强、扩展MS Office的功能.
VBA以面向对象的编程方式提供了大量的对象来实现对Office的访问及控制操作[2].Word软件经常使用的对象有Document(文档对象)、Pagesetup(页面设置对象)、Paragraph(段落对象)、Font(字体对象)、Range(范围对象)等[3],通过对这些对象的定义或引用、设置对象的属性、方法和事件,就能自动完成Word文档的一系列格式化操作,实现Word文档排版自动化.
3 利用VBA实现一键公文自动排版的解决方案
基于VBA技术的一键公文自动排版的实现是以MS Office为平台,只要在电脑的系统中安装了MS Office软件,就可以通过创建宏的方式编写出VBA代码,实现公文自动排版.无需安装其他的组件或插件,使用起来轻松自如、简便易行.将实现一键公文自动排版的VBA代码保存在word文档中,第一次使用时,只需将代码粘贴到新创建的宏里,几乎不用对使用该功能的编排人员进行操作培训,可以说只要会使用Word,就会操作它,从而排版出规范、标准的公文格式.
根据公文常规排版的流程,将自动排版的主模块分别设计成6个子模块来实现.每个子模块完成各自的功能,这样设计的目的是使程序的层次清晰,增强程序的可读性;功能独立,减少交叉,减少重复代码的编写,有利于重复调用.6个子模块分别是自动排版之初始化、页面设置、段落格式设置、字符格式设置、文档标题格式设置以及页脚格式设置.
(1)初始化模块.初始化功能是清除文档中的超链接,并将文档格式及符号和编号换成普通文本.公文内容有的来源于网上,有的来源于其他文档,可能存在着超链接或其他格式的现象.初始化子模块的主要功能是实现清除文档格式和超链接.清除文档中超链接要通过调用Field对象来完成,使用清除格式命令Clear Formatting会把公文中项目符号和编号一起清除.
因此,为了保留符号和编号,在使用命令之前利用Convert Numbers To Text将其转换成普通文本格式,避免有用信息被清除掉.
利用VBA技术编写的宏代码如下:Sub 自动排版_初始化()
Dim Fie As Field
For Each Fie In Active Document.Fields
Fie.Unlink‘清除文档中的超链接
Next
Active Document.Content.List Format.Convert Numbers To Text
‘系统生成项目编号转换成文本
Selection.Whole Story‘选中文档所有内容End Sub
(2)页面设置模块.编排人员经常对文档设置纸张大小、页边距以及版式等等.为了实现页面
属性设置的自动化,就需要调用Page Steup对象.它包含所有页面设置的属性(如左边距、底部边距、纸张大小等).
利用VBA技术编写的宏代码如下:Sub 自动排版_页面设置()
With Active Document.Page Setup
.Top Margin=Centimeters To Points(3.6)
‘设置上页边距
.Bottom Margin=Centimeters To Points(3.5)
‘设置下页边距
.Left Margin=Centimeters To Points(2.8)
‘设置左边距
.Right Margin=Centimeters To Points(2.6)
‘设置右边距
.Paper Size=wd Paper A4‘设置纸张大小为A4
.Header Distance=Centimeters To Points
(1.5)‘设置页眉距边界
.Footer Distance= Centimeters To Points
(2.8)‘设置页脚距边界
.Odd And Even Pages Header Footer=False
‘奇偶页的页脚相同
End With
paneEnd Sub
(3)段落格式设置模块.通过VBA代码调用Paragraphs对象来控制word文档的段落间距、字符间距、对齐方式、首行缩进字符数以及行间距等属性设置.
利用VBA技术编写的宏代码如下:Sub 自动排版_段落格式设置()
With Active Document.Paragraphs
.Alignment= wd Align Paragraph Justify
‘设置段落对齐方式
.Left Indent=Centimeters To Points(0)
‘设置段落的左、右缩进的值
.Right Indent=Centimeters To Points(0)
.Character Unit First Line Indent=2‘设置首
行缩进字符数
.Line Spacing Rule=wd Line Space Exactly
‘行间距设置成固定值
.Line Spacing=28‘固定值为28磅
End With
End Sub
(4)标题格式设置模块.将文档的第一段默认为公文标题,并按照公文标题格式的要求对其字体、字号、段落格式化进行设置.完成公文标题格式设置通过调用段落设置Paragraphs对象和字符设置Font对象来实现.
利用VBA技术编写的宏代码如下:
Sub 自动排版_文档标题格式设置()‘默认第一段
为文档标题,然后进行格式设置
Active Document.Paragraphs(1).Range.Se
lect‘选中文档的第一段
With Selection
.Clear Formatting
With.Font‘设置字符格式
.Size=22‘字号大小为22磅,(即二号)
.Name="方正小标宋简体"‘设置字体
End With
With.Paragraphs‘设置段落格式
.Character Unit First Line Indent=0‘首
行缩进为0
.Alignment=wd Align Paragraph Center
‘对齐方式居中
.Line Spacing Rule=wd Line Space Exactly
.Line Spacing=35‘行间距为35磅

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。