- 32 -
信 息 技 术
0 引言
Word 文字处理软件是目前世界上使用最为广泛的办公软件之一。使用Word 文档最基本的操作便是对一些重要文件进行编辑和排版,例如公文、论文、标书以及项目申报书等,这类文件对排版有很多非常严格的规范和要求。以公文为例,2012年4月中共中央办公厅、国务院办公厅联合印发了《党政机关公文处理工作条例》,随后国家质量监督检验检疫总局和国家标准化管理委员会又联合发布了《党政机关公文格式》国家标准,从制度和标准的角度对我国党政机关、企事业单位使用公文的规范提出了要求,该标准成为目前我国广大文秘工作者处理公文的根本遵循。对文秘工作者来说,按照公文格式要求对文档进行排版并不难,麻烦的是要用手工排版的方式对大量机械重复的公文格式进行编辑,采用手工排版不仅费时费力、效率低下,而且还容易出错,不能保证排版的质量,从而会影响公文处理的效果。
1 相关研究
与手工排版方法相对应的是自动排版方法。显然,可以
开发专门的排版软件来实现对文档的自动排版,但是对于广大普通用户来说,这既不经济,也不现实。因此,有必要开发经济适用且适合普通用户使用的自动排版方法;其中比较有效的1种方法是使用Word VBA 或宏技术,已经有一些学者对该方法进行了初步研究。
文献[1]研究了通过VBA 平台来限制和规范文档编辑的过程,避免在文档编辑的过程中因人为因素而导致出现不规范和错误的操作,有效地降低了手工编辑的出错几率和查错纠错的工作量,极大地提高了文档编辑的效率。文献[2]针对期刊编辑日常工作中需要完成大量重复的工作,使用Word VBA 开发了一些编辑加工功能,可以快速形成格式规范稿件,提高了期刊的编辑质量。文献[3]则利用VBA 编程解决了Word 2010中对藏文进行排版时存在无法对齐左右边界的问题,实现了藏文文档排版的规范化。文献[4]针对高校毕业论文复杂的排版要求,利用Word 宏代码和Delphi 语言开发了论文自动排版系统,实现了对毕业论文的自动排版。由于公文是1种应用非常广泛的重要文书,要起草和编辑公文就离不开排版,特别是对于广大文秘工作者来说,按要求对公文进行排版和格式审核已经成为1项颇费精力的重要工作。但是,目前对按照最新公文格式规范要求进行自动排版
的技术的研究还非常有限。
2 公文格式基本要求
按照《党政机关公文处理工作条例》和《党政机关公文格式》国家标准的要求,并结合笔者单位的实际情况,公文格式总体上包括以下4个方面。
2.1 页面设置要求
上边距为3.0 cm,下边距为3.0 cm,左边距为2.5 cm,右边距为2.4 cm ;使用A4纸,宽度为21.0 cm,高度为29.7 cm ;页眉页脚奇偶页不同、首页不同,页眉距边界1.5 cm,页脚距边界2.2 cm ;指定行与字符网格,每行28个字符数,每页22行。
2.2 字体要求
公文标题为二号方正小标宋简体;正文内容为三号仿宋_GB2312;正文一级标题为三号黑体;二级标题为三号楷体_GB2312;三级标题为三号仿宋_GB2312;西文字体为Times New Roman。
2.3 段落要求
公文的标题设置为居中对齐,无首行缩进,段前、段后间距为0行,行距为固定值32磅;公文正文部分设置为两端对齐,首行缩进2字符,段前、段后间距为0行,行距为固定值30磅;所有段落取消孤行控制。
2.4 页码要求
页码使用阿拉伯数字左右各加1条一字线,字体为四号宋体;其中,奇数页的页码在页面底端的右侧,偶数页的页码在页面底端左侧,首页不显示页码。
3 使用VBA 编程实现公文自动排版3.1 VBA 简介
VBA 是Visual Basic for Applications 的简称,也就是通常所讲的新一代标准宏语言,它是1种基于Visual Basic 的程序设计语言,通过嵌入到Office 办公软件中,实现对Office 办公软件的控制、功能扩展和定制。VBA 以面向对象的方式提供了文档对象Document、页面设置对象Pagesetup、段落对象Paragraph 以及字体对象Font 等很多对象,文档编辑工
Word VBA自动排版方法在公文处理中的应用
雷泌
(湖南环境生物职业技术学院,湖南  衡阳  421005)
摘 要:对公文进行编辑和排版是文秘工作者十分重要的日常工作。面对大量需要处理的公文,使用手工排版,会增加文秘工作者的工作量,不仅排版效率低下,而且排版质量也无法得到保证。因此,该文研究了Word VBA 自动排版技术,并以最新的公文格式规范要求为标准,通过VBA 编程实现了公文自动排版。实验表明,该方法是可行、有效的。关键词:公文;VBA ;自动排版中图分类号:TP 311 
      文献标志码:A
- 33 -
vba编程技巧信 息 技 术
作者只需要按照具体的排版要求定义好这些对象的属性和方法,就可以完成对文档的排版,即通过VBA 编程,将排版要求代码化,并嵌入到Word 模板中,那么当要对文档进行排版时,只需要执行该VBA 程序,就可以完成对Word 文档的自动排版。
3.2 VBA 编程实现公文格式设置
3.2.1 进入VBA 编程环境
VBA 的使用门槛不高,之所以没有任何编程基础的人也可以快速掌握VBA,是因为Word 内置了1个Visual Basic 程序编辑器,可以通过创建宏的方式打开该编辑器,该编辑器便是VBA 程序的开发工具,使用它不仅可以编写VBA 程序,还可以对VBA 程序进行调试。
单击Word 2010“视图”选项卡下面的“宏”命令按钮,弹出“宏”对话框,如图1所示,在“宏名”下面的编辑框中输入宏名称“公文排版”,选择“宏的位置”中的“所有活动模板和文档”,再单击“创建”按钮就可以创建1个宏,同时打开Visual Basic 编辑器,在该编辑器中可以看到已经创建了1个VBA 过程“Sub 公文排版()”,如图2所示。
3.2.2 公文格式的代码化
由于Word VBA 是以宏的形式来实现的,因此可以通过录制宏的方式来实现从公文编辑到VBA 代码的转化,再到Visual Basic 编辑器中对代码进行适当修改,就可以快速地完成对VBA 自动排版程序的编写。以页面设置为例,按照公文格式要求,在对页面设置的同时同步录制宏,就可以创建1个“公文排版_页面设置()”的VBA 过程,具体代码如下。
Sub 公文排版_页面设置()
With Application.ActiveDocument.PageSetup        .TopMargin = CentimetersToPoints(3)                  .BottomMargin = CentimetersToPoints(3)                .LeftMargin = CentimetersToPoints(2.5)                .RightMargin = CentimetersToPoints(2.4)
.PaperSize = wdPaperA4                                .HeaderDistance = CentimetersToPoints(1.5)            .
FooterDistance = CentimetersToPoints(2.2)            .OddAndEvenPagesHeaderFooter = True                  .DifferentFirstPageHeaderFooter = True                .VerticalAlignment = wdAlignVerticalTop        .SuppressEndnotes = False        .MirrorMargins = False        .TwoPagesOnOne = False        .BookFoldPrinting = False        .BookFoldRevPrinting = False        .BookFoldPrintingSheets = 1        .GutterPos = wdGutterPosLeft        .LayoutMode = wdLayoutModeGrid        .LinesPage = 22        .CharsLine = 28End With End Sub
在上述代码中,PageSetup 是VBA 提供的页面设置对象,该对象具有很多属性,例如TopMargin、BottomMargin 分别表示页面设置操作中的上边距和下边距,通过定义这些属性就可以完成对页面中页边距、纸张、版式以及文档网格等的设置。按照同样的方法,可以对公文格式对字体、段落等其他方面的要求一一转换成VBA 代码,从而实现公文格式排版要求的代码化。其中,插入页码的操作相对比较复杂,需要考虑奇、偶数页页码的差异,具体程序流程如图3所示。
3.3 运行VBA 程序完成公文自动排版
要通过运行1次VBA 程序完成所有排版格式的自动设置,还需要把前面实现的页面设置、字体设置以及段落设置等VBA
过程全部设置为“Sub 公文排版()”这个过程的子过程,这样排版时只需要执行“Sub 公文排版()”,所有的子过程就会依次自动执行。将其他过程设置为“Sub 公文排版()”的子过程的方法如下。
图1  宏对话框
- 34 -
信 息 技 术
Sub 公文排版()公文排版_页面设置公文排版_字体设置 公文排版_段落设置 公文排版_插入页码End Sub
图3  插入页码的VBA 程序流程图
4 实验结论
用Word 2010打开1个格式非常混乱的文档或者使用“清除格式”功能清除文档的所有格式;再单击视图选项卡
下的“宏/查看宏”,选择“公文排版”,单击“运行”按钮,就可以快速地完成文档的自动排版。通过对比,发现该方法已经自动按照公文格式要求完成了对文档页面、字体、段落以及页码的设置,特别是对文章标题、正文中标题(一级标题、二级标题和三级标题)以及正文其他内容的字体、字号、首行缩进、对齐方式、段间距和行间距等参数的设置也都满足公文格式的要求,该方法不仅排版效率高,而且排版效果也非常好。实验表明,该文提出的自动排版方法是可行、有效的。
5 结语
该文提出的Word VBA 自动排版方法有效地实现了公文自动排版,极大地提升了文档编辑的效率,对其进行推广应用有利于减少文秘工作者对于公文进行格式编辑的工作量,可以把工作重心和主要精力集中到对公文内容的审核,从而提高公文处理工作和公文的质量。
参考文献
[1]孙俊峰.一种基于VBA 平台的OA 文档处理方案及其模拟实现[J]. 西南民族学院学报(自然科学版),
2014,40(5):739-744.
[2]郑小光,田旭,张强.基于WORD VBA 及宏的计算机辅助编辑加工
[J].编辑学报,2017,29(增刊1):89-91.
[3]丁海兰,祁坤钰.基于Word VBA 的藏文排版规范及技术实现[J].西北民族大学学报(自然科学版),2015,36(4):37-41.
[4]郑根创.论文自动排版系统的设计与实现[D].广州:华南理工大学,2012.
图2  Visual Basic 编辑器

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