摘要:Word文字处理软件因其具有强大的文字处理功能,已被广泛应用于各行各业。然而在具体应用过程中,由于操作者本身水平的差异,导致生成的Word文档格式不统一,这就会给组织者带来一定的麻烦。该文通过一个具体实例,详细介绍了如何利用VBA技术,实现批量Word文档快速格式化的问题。
关键词:VBA;批量;格式化;Word文档
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)09-2194-02
1 问题的提出
Word文字处理软件是微软公司推出的Office系列办公应用软件中被使用频率较高的一款。由于其具备众多的优点与实用性,所以备受广大用户的欢迎,广泛应用于各个领域。在日常工作、学习生活中经常会遇到这样的情况:公司要求员工制定工作计划、提交工作总结;老师要求学生制定学习计划、提交征文比赛文稿等等。在“节能减排”的当今社会,很多单位都在实行无纸化办公,所以要求大家提交的工作计划与总结等一般都是Word文档类型的电子文件。由于每个人的计算机操作水平不尽相同,因而提交上来的Word文档的格式也各式各样,尽管有时组织者规定了严格的格式要求,甚至于给出了文档的模板,但由于操作水平上的差异,最终电子文档格式还是不可能完全统一。这就给组织者带来了不小的麻烦:返回去重改吧,一是时间不一定允许,二是最终也不一定能符合格式要求;组织者一份份地逐一去修改吧,这又不太现实。如何在最短的时间内快速统一这些Word文档的格式,是一个亟待解决的问题。而VBA技术则能很好地解决这一问题。
2 VBA技术
VBA是新一代标准宏语言Visual Basic for Applications(简称VBA)。其目的是强化Office软件的应用,完成应用软件的自动化和程序化。VBA与VB的语法结构完全相同,简单的说VBA就是内置于Office软件中的VB语言,是VB的一个子集。
VBA提供了大量的对象来实现对Office的访问和控制操作。VBA以面向对象的编程方式实现对它们的访问和控制。Word中用到的对象有Document文档对象、Range范围对象、Pagesetup页面设置对象、Font字体对象、Paragraph段落对象、Table表格对象、Shape图片对象等,通过对这些对象的定义或引用、设置对象的属性、方法和事件,就可以完成Word文档的格式化操作。例如,通过Pagesetup对象可以获得Word文档的左右边距、上下边距、页眉和页脚等数据;通过Font对象的属性可以获得文档中中文字体的格式名称、字体颜色、是否为粗体、斜体、是否有下划线等内容;通过Paragraph对象可以获得文档的段落及段落的左右缩进、段前、段后缩进、首行缩进、段落的行间距等内容。
下面介绍在Word2003环境下,如何批量实现文档格式化处理。对所有文档的格式要求如下:
1) 页面格式:①纸张大小:宽度:20.8cm,高度:29 cm ;②页边距:上:2.8cm,下:3.2cm,左:3.4cm,右:3.1cm。
2) 段落格式:①对齐方式:两端对齐;②段落缩进:左缩进1 cm,右缩进1.5 cm;③首行缩进2字符;④行间距:1.5倍行距。
3) 字符格式:①字体:华文行楷;②字号:24;③字体颜色:深蓝色。
3 实现过程
3.1 创建宏
1) 新建一篇Word文档,文件名为:格式化.doc;
2) 单击“工具”菜单,在弹出的菜单项中选择“宏”命令,在其下一级菜单中选择“录制新宏”命令,在打开的“录制宏”的对话窗口中输入宏名:“批量格式化文档”,单击“确定”按钮。
3) 由于我们要编写代码完成操作,所以此时无需录制宏,只需直接单击“宏”工具栏上的“停止”按钮就可以了。
3.2 将宏指定给工具栏
为了方便操作,可以把刚才创建的宏指定给工具栏,这样进行批量文档格式化操作时,无需运行“宏”命令了,只需单击工具栏上的按钮就要以完成操作了,方法如下:
1) 单击“工具”菜单,在弹出的菜单项中选择“自定义”命令,在打开的对话窗口中选择“工具栏”选项卡,单击“新建”按钮,在打开的对话框窗口中“工具栏名称”下输入:“格式化”,再单击“确定”按钮,这样一来,Word文档窗口上就会出现名称为“格式化”的工具栏。
2) 单击“命令”选项卡,在“类别”下拉列表中选择“宏”命令,将右侧列表框中的“批量格式化文档”宏命令拖动至刚才自定义的“格式化”工具栏上。
3) 右键单击工具栏上的“批量格式化文档”,在弹出的快捷菜单中的“命名”处输入:“批量格式化文档”。
4) 将“格式化”工具栏拖动至Word文档窗口中格式工具栏后,使其嵌入至格式工具栏中。
3.3 编写代码
单击“工具”菜单,在弹出的菜单项中选择“宏”命令,在其下一级菜单中选择“宏”,在打开的界面中选择“批量格式化文档”,单击“编辑”按钮,在打开界面的空白处录入如下代码:
Dim mydialog As FileDia