基于AutoIt3和VBA的Office操作题的批量批改自动化
2016-12-22何剑
何 剑
(扬州职业大学师范学院,江苏 扬州 225000)
基于AutoIt3和VBA的Office操作题的批量批改自动化
何 剑
(扬州职业大学师范学院,江苏 扬州 225000)
选取一套Office操作题,按照Word、Excel、PowerPoint、FrontPage、Access先后顺序,先用VBA设计、实现单份Office操作题的自动批改,再用AutoIt3设计、实现多份Office操作题的自动批量批改。基于以上实践,提出一种通用的Office操作题批量批改自动化方案。
AutoIt3;VBA;Office操作题;应用程序自动化;批量批改自动化
1 引言
AutoIt3是一种免费的BASIC风格的脚本语言,被设计用来自动化Windows图形用户界面和通用脚本编程,它组合使用模拟击键、鼠标移动和窗口/控件操作,以一种使用其他语言不可能或不可靠完成的方式实现任务自动化[1]。VBA是主要寄生在Microsoft Office中的一种应用程序自动化语言,用来扩展Office软件功能、提升Office应用效率。而“应用程序自动化”,主要是指应用软件的操作自动化,旨在代替人工自动实施对应用软件的预定操作。
无论大学计算机信息技术课程中 Office应用软件基本操作的实验教学,还是江苏省高校计算机等考一级中 Office操作题的技能考核,都对 Office操作题作业或试卷的批量批改提出了很高要求,为此,应用VBA和AutoIt3,本文设计和实现了一种Office操作题批量批改自动化方案。
2 单份Office操作题的自动批改
本文以江苏省高校计算机等考一级模拟试卷中选取的一套Office操作题为例,应用VBA设计、实现单份Office操作题的自动批改程序。首先将该套 Office操作题分为 Word、Excel、PowerPoint、FrontPage、Access五大类操作,每类操作占20分,总分100分,然后对照各类软件操作技能考核要求,对每类操作划分小题、评分点并确定对应分值,最后按照五类操作先后顺序,逐个编写VBA代码从而实现整个一套Office操作题的自动批改。
通常,一套Office操作题中,Word操作与Excel操作会有交叉部分,PowerPoint操作与FrontPage操作也会有交叉部分。五类操作非交叉部分的自动批改VBA程序的设计与实现不太难,请参看文献[2]、[3]、[4]、[5]、[6],而设计、实现两个交叉部分的自动批改程序相对难一些。该套Office操作题中,两个交叉部分的题目要求如下:将生成的图表以"增强型图元文件"形式选择性粘贴到 Word文档的末尾;为网页表格中的文字"奇特的键盘"创建超链接,指向Web.htm(由Web.ppt另存产生),目标框架为"新建窗口"。为实现自动批改交叉部分,本文将这两个交叉部分分别作为小题添加到Excel操作大类和FrontPage操作大类中,分别调整原Excel操作大类和原FrontPage操作大类的评分点及分值,分别在原 Excel批改代码和原 FrontPage批改代码基础上增加新小题的自动批改VBA代码。限于篇幅,这里只针对第一个交叉部分,给出Excel操作大类中新增小题的评分点及分值如表1所示,列出Excel_AutoBatchCorrectReport_ VBA_A.txt中的Excel操作大类新增小题VBA代码如表2所示,
其中,FlagChart表示之前制作的图表是否正确,由于要在Excel文件中访问Word对象,因此必须在Excel的VBA编辑器中“Tools”菜单下“References”对话框中添加“Microsoft Word 11.0 Object Library”。
表1 Excel操作大类新增小题评分点及分值
表2 Excel操作大类新增小题VBA代码
3 多份Office操作题的自动批量批改
对应一套Office操作题的五大类操作,首先,应用AutoIt3编写五个程序分别实现多份 Office操作题中 Word、Excel、PowerPoint、FrontPage、Access各个操作大类的自动批量批改,然后,将五个AutoIt3程序中的公用数据(作业目录(课程&班级)、作业目录下的学号文件夹数目、Office操作题成绩表文件、用于临时传递成绩的temp.txt等)提取出来,放入配置脚本文件MsOffice_CorrectConfig_A.au3中,最后,应用AutoIt3编写一个主程序,在其中包含并调用上述六个程序。程序文件清单如图1所示。
图1 程序文件清单
主程序文件MsOffice_AutoBatchCorrectReport_ A.au3主要功能步骤有:(1)弹出程序启动画面;(2)新建 temp.txt,用于临时传递成绩;(3)新建Office操作题成绩表文件,例如:“大学计算机信息技术_2013英教班_操作题成绩.xls”;(4)以作业目录下的学号文件夹数目为循环次数,按有效学号顺序,每循环一次就进入一个学号文件夹“XX”,新建“XX操作题批改报告.txt”;(5)按照Word、Excel、PowerPoint、FrontPage、Access先后顺序调用各类操作的自动批量批改程序;(6)在Office操作题成绩表中填写标题行并计算MsOffice操作总成绩(各类软件操作成绩之和);(7)删除temp.txt;(8)弹出程序结束画面,询问是否自动打开Office操作题成绩表文件。限于篇幅,这里只列出主程序文件中第5&6步骤的功能代码如表3所示,其中删除了所有延时语句、出错检测代码。
表3 多份Office操作题自动批量批改AutoIt3代码
五个操作大类各自的自动批量批改AutoIt3程序的实现思路如表 4所示,其中,各程序输入的是各个操作大类对应的待批改文件名和相应的自动批改VBA代码文本文件(注意程序运行时VBA宏或VBA模块的位置),各程序一律将各类操作成绩输出到 Office操作题成绩表文件、将各类操作批改意见输出到“XX操作题批改报告.txt”。五个程序中,Word、Excel、PowerPoint、FrontPage四类操作的自动批改VBA代码只需拷贝保存一次就可循环执行多次,而 Access操作的自动批改VBA代码只能循环一次、拷贝一次、执行一次。篇幅所限,关于各类操作AutoIt3程序代码的详细实现,请参看文献[2]、[3]、[4]、[5]、[6]。
表4 各类操作的自动批量批改AutoIt3程序的实现思路
以扬州职业大学师范学院2013英教班学生试做提交的30份 Office操作题为素材(作业目录如图 2所示),在配置Windows XP简体中文版、MS Office 2003英文版(默认中文输入法)的PC上,先调低Office各类软件宏安全性,后运行MsOffice_ AutoBatchCorrectReport_ A.exe,不仅生成学生的Office操作题成绩(图3截取前3位学生的成绩作为示例),而且在每个学号文件夹中生成“XX操作题批改报告.txt”(图4选取第2位学生的批改报告作为示例)。
图2 作业目录
图3 前3位学生的Office操作题成绩
4 Office操作题批量批改自动化方案
虽然以上只是针对一套具体 Office操作题设计、实现了自动批量批改程序,但是,因为 Office操作题考查内容千变万化而题型形式基本不变,所以,只要简单更换“作业目录(课程&班级)”、“Word等各类操作对应的待批改文件名(五个或更多)”、“Word等各类操作相应的自动批改VBA代码文本文件(五个)”三项内容,即可快速实现另一套具体Office操作题的自动批量批改程序。经过抽象提炼,基于 VBA和AutoIt3,本文提出一种Office操作题批量批改自动化通用解决方案。该方案的主要思路是:对于任意一套Office操作题,首先,按照Word、Excel、PowerPoint、FrontPage、Access五类软件的操作技能考核要求,将该题划分成若干小题、评分点并确定对应分值;接着,为五类操作逐个编写自动批改VBA代码,将它们分别替换存入图1所示五个文本文件中;然后,在图1所示MsOffice_CorrectConfig_A.au3文件中修改“作业目录(课程&班级)”,在图 1所示五个操作大类自动批量批改AutoIt3程序文件中分别修改至少五个“对应的待批改文件名”;最后,将修改完的*.au3文件重新编译,运行MsOffice_AutoBatchCorrectReport_A.exe,即可生成批改成绩和批改报告。
图4 第2位学生的批改报告
5 结论
本着“自顶向下分类设计、自底向上模块实现”原则而提出的 Office操作题批量批改自动化方案,结构清晰,容易实施,在需要批量批改 Office操作题作业或试卷的场合,应用它将会事半功倍。
[1] Jonathan Bennett.AutoIt automation and scripting language [EB/OL].(2014-02-01)[2014-02-13].http∶//www.autoitscript. com/site/autoit/.
[2] 何剑.基于AutoIt3和VBA的Word操作题自动批量批改程序的设计与实现[J].扬州职业大学学报,2014,18(1)∶36-39.
[3] 何剑.基于AutoIt3和VBA的Excel操作题自动批量批改程序的设计[J].苏州市职业大学学报,2014,25(3)∶17-21.
[4] 何剑.基于AutoIt3和VBA的PowerPoint操作题自动批量批改[J].温州职业技术学院学报,2014,14(3)∶56-60.
[5] 何剑.基于AutoIt3和VBA的FrontPage操作题自动批量批改[J].镇江高专学报,2014,27(3)∶48-51.
[6] 何剑.基于AutoIt3和VBA的Access操作题的批量批改自动化[J].盐城工学院学报(自然科学版),2014,27(3)∶45-48.
Automation of batch correcting for Office operation subjects based on AutoIt3 and VBA
After it selects an Office operation subject, in order by Word, Excel, PowerPoint, FrontPage, and Access, this paper firstly uses VBA to design and realize automatic correcting for single Office operation subject, and then it uses AutoIt3 to design and achieve automatic batch correcting for multiple Office operation subjects. It puts forward a kind of general automation scheme of batch correcting for Office operation subjects based on the above practice.
AutoIt3; VBA; Office operation subjects; automation of application; automation of batch correcting
TP311.51
A
1008-1151(2016)10-0008-03
2016-09-07
何剑(1981-),男,江苏高邮人,扬州职业大学师范学院讲师,硕士,从事应用程序自动化、计算机辅助教学研究。