APP下载

一种基于VBA平台的OA文档处理方案及其模拟实现

2014-03-16孙俊峰

关键词:窗体代码文档

孙俊峰

(西南民族大学, 四川 成都 610041)

一种基于VBA平台的OA文档处理方案及其模拟实现

孙俊峰

(西南民族大学, 四川 成都 610041)

OA系统经常需要分发由Office等软件生成的文档并要求接收者在完成一些编辑操作后传回, 在编辑过程中往往会存在不规范甚至错误的操作, 从而延长了人工查错纠错的时间并增加了工作量. 针对这种情况, 提出利用VBA平台对编辑过程加以限制和规范, 使用“宏”(Macro)来编辑和保存文档, 减少或避免出错的几率. 以Word2003 VBA表格填写应用为例, 对运行过程进行了模拟实现.

可视化编程; VBA; 宏; OA; 文档处理

1 问题的提出

办公自动化系统(Office Automation, 简称OA), 是1970S以来, 在现代经济大力发展特别是IT行业兴盛的背景下迅速发展起来的一门综合性方法和技术[1]. 随着OA在国内的普及, 越来越多的用户开始自觉在日常工作中使用OA系统, 极大的提高了工作效率, 减轻了劳动强度[2]. 在通过OA系统提交和传递的文件中, 以MS Office和WPS Office生成的文档最为常见[3], 由于它们采用了大量的面向对象技术和可视化操作[4], 使得没有经过专门培训的普通用户都可以在很短的时间内掌握基本的操作并达到日常办公所需的应用水平[5].

在OA系统中传递的Office文档常常以附件的形式发送和接收, 接收者在下载附件后往往还需要对文档执行编辑操作并将结果重新反馈给发送者, 在编辑过程中由于操作者的个体差异, 填写的格式不规范甚至内容错误等问题时有发生, 使得汇总过程中查错和纠错的时间延长, 工作量也相应增加. 为了改善这种情况, 可以基于OA和常用的Office软件开发一套独立的文档编辑和处理系统, 使用共享处理并提高安全性, 满足多人在线轮流处理相同文档的需求[6]. 也可以将文件的提交和填写过程进行一定程度的限制和规范化, 减少人为带来的失误.对于普通用户而言, 较为经济适用的选择是利用VBA平台进行这类系统的开发.

2 VBA及其应用

2.1 VBA简介

VBA的全称为Visual Basic for Application, 是基于VB语言的一种二次开发平台, 可用于扩展基于WINDOWS的应用程序特别是Office软件的功能. VBA一般以“寄生”的形式存在于应用软件中, 方便普通用户查阅和调用其中的程序及代码. 由于采用了VB语言的可视化技术, 使得开发过程容易掌握和实现. 以常见的Word为例, 其中寄生的VBA可以实现用户操作过程的录制和独立的程序编写, 方便的访问各种对象, 实现规范化的自动化操作[7]. 如果需要反复执行某项任务, 还可以将这项任务的步骤录制为 “宏”, 以后就可以通过执行这条“宏”记录来自动执行该任务. 除此之外, VBA还可以较为快捷的实现文档管理程序的开发和格式的转换[8].

2.2 VBA的应用

在通过OA系统分发的诸如调查、申报、登记、问卷、注册信息之类的文档中, 使用VBA可以使操作界面更加友好并减少失误, 提高效率, 还可对填写结果有限制条件的内容进行提前设置, 减少不规范填写, 比如能统一填写内容的样式和格式. 还能对填写结果进行检查, 纠正错误. 因此, 在日常文件处理中, VBA可以使文档录入和提交操作效率更高, 减少反复人工校对和纠错的时间. 由于Office文档在OA系统中上传下载的频率最高,需要手动编辑的次数也最频繁, 因此从贴近实用性方面来说, VBA 在 Office 环境中有时已经成为程序员开发的首选语言[9]. 应用VBA对Office进行优化, 可以在有限的开发工作量基础上实现自动化、规范化的文件编辑和管理, 由于VBA以寄生的形式存在于应用软件中, 没有独立的安装和卸载过程, 可以直接利用Office宏安全的设置来加以管理, 其应用范围非常广泛[10], 并能实现很多高效实用的功能开发[11].

VBA编程简单、方便、功能强大, 具有与其它语言及环境的良好接口, 不需要编程开发人员具备 C语言或Pascal语言知识和特别系统的专业知识, 只要懂得 Windows的界面及其基本操作就可以迅速上手, 而且 VBA在程序界面设计、多媒体开发方面也具有一定优势[12]. 因此, 为了使VBA的功能更好的发挥作用, 有必要利用VBA的简洁、免安装、自动化、批处理等特性和功能实现对B/S模式OA系统的优化. 目前基于VBA的大多数系统开发都是针对EXCEL的, 很少有针对Word、WPS等文字处理软件的系统开发研究及其成果方便的报道,但文字处理软件在文档管理和编辑过程中出现的频率又非常高, 因此, 针对文字处理软件的VBA系统开发方案的研究是有必要的. 本试验以Word2003为例, 尝试从文件的保护、编辑、查错、保存、人机接口几个方面综合应用VBA功能, 并且将这些功能整合在一起, 形成较为系统的流程, 探索VBA在OA文件处理过程中的优化方案及其具体的功能实现途径, 为实用系统的开发提供参考和借鉴.

3 试验设计

在日常操作中, 表格填写是最为常见的操作, 以企业“注册信息表”中的部分内容“企业信息”为例(见表1中粗体文字部分), 演示文档的自动填写和纠错系统的设计.

表1 企业注册信息表Tab. 1 Enterprise Registration Information Table

3.1 设计目标

注册信息表通过Word的文档保护功能拒绝直接填写, 填写过程开始后, 由可视化的命令按钮和窗体完成,最大限度的防止填写错误, 点击提交按钮后, 可自动完成诸如日期、身份证号码等信息的纠错和提示, 自动计算注册有效期, 并通过宏代码取消文档保护和填写表格, 自动另存为规范化名称的文档后退出程序. 整个流程如图1所示.

图1 处理流程图Fig. 1 Management Flow Chart

3.2 模拟实现

要让用户收到文档后能够按照规范填写, 需要对“宏”安全设置进行修改, Office默认宏安全性为高, 应修改为中等安全性, 以便于程序运行. 以Word2003版为例, 选择“工具”/“宏”/“安全性”, 打开宏安全设置对话框, 选择安全性为“中”, 让OFFICE打开带有宏的文档时询问用户是否选择启用宏, 如果用户确定该文档是安全的(比如自己编辑的代码或来自OA的待处理文件)就可以启用宏, 如果不确定就应该点选“禁止”启用. 如未另外说明,以下操作均以Word2003为例.

3.2.1 文档保护

在管理人员将需要处理的文档上传到OA之前, 可以设置文档的状态为受保护状态. 代码可通过宏录制或编写, 将其存储于需要处理文档的程序模块中. 代码如下所示:

3.2.2 解除保护

如果用户填写正确, VBA将用户窗体中的填写内容写入表格, 需要解除文档保护, 写入完成后再重新启动文档保护. 代码如下所示:

3.2.3 “填写”按钮设置

根据表格内容的需要, 可以在Word文件中直接设置若干填写按钮, 设置方法可以通过打开“视图/工具栏/Visual Basic”, 然后在弹出的Visual Basic工具条中打开“控件工具箱”, 选择其中的“命令按钮”控件, 在Word页面视图状态在页面的顶端将命令按钮控件画出来. 如果文档需要打印并且不显示命令按钮等控件, 需要打开“工具/选项/打印选项卡/”, 取消勾选“图形对象”. “填写”按钮作用为, 当用户按下命令按钮时, 弹出窗体. 以“企业基本信息”命令按钮(命令按钮名称为jbxx)及其对应的弹出窗体(窗体名称为jbxx)为例, 代码如下所示:

3.2.4 窗体设置

窗体根据表格内容设置如图2所示. 窗体上的控件包括命令按钮、标签、文本框、下拉框几种类型. 为了让每个窗体中的内容不互相影响, 应该将过程声明为私有过程, 即“Private Sub”, 避免窗体预设内容的混乱和干扰.

代码如下所示: (1)窗体预设代码

图2 窗体效果Fig. 2 Form Result

3.2.5 “提交”按钮设置

“提交”按钮的作用为: 当按下提交后, 提示是否确认提交, 如确认, 则弹出输入框要求用户按照规定输入用户名, 并将系统当前状态和用户名一起写入文档名另存到本地计算机的某个目录下(例如桌面). 例如“提交”按钮的名称为“Commandbutton1”, 代码模拟如下:

4 结论和讨论

结合相关实践, 模拟试验证明通过VBA来处理文档至少可以实现如下优化:

(1)有效保护文档. 对文档写保护, 在用户通过VBA填写相关信息时, 依靠点击命令按钮, 依靠后台代码完成对文档的“取消保护”操作并写入数据, 然后再自动重新保护文档. 通过禁止直接在文档中直接编辑, 可以有效预防因为编辑失误造成对原始内容的误删或无意篡改.

(2)充分利用域. 利用VBA, 可以充分利用域的自动化功能, 比如在需要用户输入大段文字的地方可以插入文本域来加以提示和限定, 在需要填写当前时间等信息的地方可以插入日期域并通过点击“提交”按钮来完成时间的更新等.

(3)自动检查. 在用户完成信息填写后, 可以通过点击“检查”按钮, 利用后台代码检查填写内容是否正确, 如有错误则提示用户修改. 也可将检查纠错功能直接在填写过程中提现, 在填写诸如时间、身份证号码、电话号码等信息时自动检查和提示错误的输入并给予正确输入的格式示例.

(4)减少重复. 文档中需要重复填写的数据可以只填写一次, 比如在文档中需要重复输入的姓名、工作单位、地址等信息, 可以利用交互式的窗体将这些需要重复信息集中到一起, 编辑者仅仅需要输入一次, 就可以在文档不同的地方完成这些信息的填写, 有效的降低了工作量并降低了出错的几率.

(5)集中编辑. 通过VBA可以将文档中处于不同位置的若干相关内容集中到同一个窗体中操作, 比如复杂表格中不同位置的内容集中到同一个窗体中操作, 或者位于不同工作表中的相关内容集中到一个窗体中填写.

(6)规范文件名. 在一些调查问卷之类的文档中, 需要对文件名加以规范, 用户确认填写完成并提交后, VBA可以自动将文档另存为规范的文件名.

试验从文档编辑操作环节对VBA平台作用于OA系统的辅助功能进行了阐述和模拟, 在实际应用中, VBA平台还可以在各种不同的层次和环节对OA系统进行协同与补充, 同时还能有针对性的实现对软件的二次开发,不仅能快速定制客户端程序, 还能利用面向对象和可视化的VB语言帮助使用者高效的处理自己在日常工作中所面临的特殊问题[13], 因此在应用OA系统的同时有必要在计算机知识培训方面推广VBA的应用, 提高工作效率.

[1]范玉顺, 胡耀光. 企业信息化规划的基本框架与方法[J]. 新技术新工艺, 2004(9): 2-7.

[2]尹帆等. 基于工作流的办公自动化系统的研究与实现[J]. 武汉理工大学学报, 2004, 28(1): 114-117.

[3]王志军. Office 2013 WPS 2012 谁是你的Style[J]. 电脑爱好者, 2013(1): 8-18.

[4]何勇. 亲密无间—Word2000与其他Office程序间的合作[J]. 电脑技术, 2001(2): 70-72.

[5]韩娜. WPS Office 与 MS Office 之间的较量[J]. 科技信息, 2007(7): 162-164.

[6]许淑华, 齐鸣鸣. 基于双层签名的 Word 公文在 OA 系统中的实现[J]. 微计算机信息: 2008, 24(5): 266-268.

[7]杨晓亮. Word VBA高效排版范例应用[M]. 北京: 中国青年出版社, 2005: 1-15.

[8]邓剑文. 使用 VBA 开发文档管理程序[J]. 南昌高专学报, 2006, 21(5) : 100-101.

[9]肖春英. 基于 VBA 改进的酒店管理系统程序[J]. 2013(12): 106-108.

[10]北京博彦科技发展有限责任公司. 编程高手 Office VBA [M]. 北京: 北京大学出版社, 2000.

[11]李政, 梁海英, 李昊, 林广朋. VBA 应用基础与实例教程[M]. 2版. 北京: 国防工业出版社, 2009.

[12]王蕊. 基于VBA技术的工资管理系统——以云南经济管理职业学院为例[D]. 成都: 电子科技大学, 2011.

[13]胡焕然, 陈奉英. Word VBA 的几种应用[J]. 新余高专学报, 2007, 12(4): 74-76.

An OA document processing scheme and its simulation based on VBA platform

SUN Jun-feng
(Southwest University for Nationalities, Chengdu 610041, P.R.C.)

In OA systems, the Office documents often need to be distributed and sent back after some editing operation. Some questions in the editing operation, such as not standardized editing or error, will increase workload. This paper proposes the use of VBA and Macro platform to edit and save the documents, which would avoid and reduce the chances of error. With Word2003 VBA as an example, the simulation is done.

visual programming ; VBA; Macro; OA; document processing

TP317.1

A

1003-4271(2014)05-0739-06

10.3969/j.issn.1003-4271.2014.05.20

2014-05-18

孙俊峰(1979-), 男, 汉族, 重庆丰都人, 讲师, 博士, 从事旅游管理信息系统教学与培训研究.

西南民族大学2012年青年教改项目: VBA在旅游管理信息系统理论与实操教学中的应用(2012QN12).

猜你喜欢

窗体代码文档
有人一声不吭向你扔了个文档
试谈Access 2007数据库在林业档案管理中的应用
创世代码
创世代码
创世代码
创世代码
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
基于LayeredWindow的异形窗体局部刷新
巧设WPS窗体控件让表格填写更规范