何 劍
(揚州職業(yè)大學師范學院,江蘇 揚州 225000)
基于AutoIt3和VBA的Office操作題的批量批改自動化
何 劍
(揚州職業(yè)大學師范學院,江蘇 揚州 225000)
選取一套Office操作題,按照Word、Excel、PowerPoint、FrontPage、Access先后順序,先用VBA設(shè)計、實現(xiàn)單份Office操作題的自動批改,再用AutoIt3設(shè)計、實現(xiàn)多份Office操作題的自動批量批改?;谝陨蠈嵺`,提出一種通用的Office操作題批量批改自動化方案。
AutoIt3;VBA;Office操作題;應(yīng)用程序自動化;批量批改自動化
AutoIt3是一種免費的BASIC風格的腳本語言,被設(shè)計用來自動化Windows圖形用戶界面和通用腳本編程,它組合使用模擬擊鍵、鼠標移動和窗口/控件操作,以一種使用其他語言不可能或不可靠完成的方式實現(xiàn)任務(wù)自動化[1]。VBA是主要寄生在Microsoft Office中的一種應(yīng)用程序自動化語言,用來擴展Office軟件功能、提升Office應(yīng)用效率。而“應(yīng)用程序自動化”,主要是指應(yīng)用軟件的操作自動化,旨在代替人工自動實施對應(yīng)用軟件的預(yù)定操作。
無論大學計算機信息技術(shù)課程中 Office應(yīng)用軟件基本操作的實驗教學,還是江蘇省高校計算機等考一級中 Office操作題的技能考核,都對 Office操作題作業(yè)或試卷的批量批改提出了很高要求,為此,應(yīng)用VBA和AutoIt3,本文設(shè)計和實現(xiàn)了一種Office操作題批量批改自動化方案。
本文以江蘇省高校計算機等考一級模擬試卷中選取的一套Office操作題為例,應(yīng)用VBA設(shè)計、實現(xiàn)單份Office操作題的自動批改程序。首先將該套 Office操作題分為 Word、Excel、PowerPoint、FrontPage、Access五大類操作,每類操作占20分,總分100分,然后對照各類軟件操作技能考核要求,對每類操作劃分小題、評分點并確定對應(yīng)分值,最后按照五類操作先后順序,逐個編寫VBA代碼從而實現(xiàn)整個一套Office操作題的自動批改。
通常,一套Office操作題中,Word操作與Excel操作會有交叉部分,PowerPoint操作與FrontPage操作也會有交叉部分。五類操作非交叉部分的自動批改VBA程序的設(shè)計與實現(xiàn)不太難,請參看文獻[2]、[3]、[4]、[5]、[6],而設(shè)計、實現(xiàn)兩個交叉部分的自動批改程序相對難一些。該套Office操作題中,兩個交叉部分的題目要求如下:將生成的圖表以"增強型圖元文件"形式選擇性粘貼到 Word文檔的末尾;為網(wǎng)頁表格中的文字"奇特的鍵盤"創(chuàng)建超鏈接,指向Web.htm(由Web.ppt另存產(chǎn)生),目標框架為"新建窗口"。為實現(xiàn)自動批改交叉部分,本文將這兩個交叉部分分別作為小題添加到Excel操作大類和FrontPage操作大類中,分別調(diào)整原Excel操作大類和原FrontPage操作大類的評分點及分值,分別在原 Excel批改代碼和原 FrontPage批改代碼基礎(chǔ)上增加新小題的自動批改VBA代碼。限于篇幅,這里只針對第一個交叉部分,給出Excel操作大類中新增小題的評分點及分值如表1所示,列出Excel_AutoBatchCorrectReport_ VBA_A.txt中的Excel操作大類新增小題VBA代碼如表2所示,
其中,F(xiàn)lagChart表示之前制作的圖表是否正確,由于要在Excel文件中訪問Word對象,因此必須在Excel的VBA編輯器中“Tools”菜單下“References”對話框中添加“Microsoft Word 11.0 Object Library”。
表1 Excel操作大類新增小題評分點及分值
表2 Excel操作大類新增小題VBA代碼
對應(yīng)一套Office操作題的五大類操作,首先,應(yīng)用AutoIt3編寫五個程序分別實現(xiàn)多份 Office操作題中 Word、Excel、PowerPoint、FrontPage、Access各個操作大類的自動批量批改,然后,將五個AutoIt3程序中的公用數(shù)據(jù)(作業(yè)目錄(課程&班級)、作業(yè)目錄下的學號文件夾數(shù)目、Office操作題成績表文件、用于臨時傳遞成績的temp.txt等)提取出來,放入配置腳本文件MsOffice_CorrectConfig_A.au3中,最后,應(yīng)用AutoIt3編寫一個主程序,在其中包含并調(diào)用上述六個程序。程序文件清單如圖1所示。
圖1 程序文件清單
主程序文件MsOffice_AutoBatchCorrectReport_ A.au3主要功能步驟有:(1)彈出程序啟動畫面;(2)新建 temp.txt,用于臨時傳遞成績;(3)新建Office操作題成績表文件,例如:“大學計算機信息技術(shù)_2013英教班_操作題成績.xls”;(4)以作業(yè)目錄下的學號文件夾數(shù)目為循環(huán)次數(shù),按有效學號順序,每循環(huán)一次就進入一個學號文件夾“XX”,新建“XX操作題批改報告.txt”;(5)按照Word、Excel、PowerPoint、FrontPage、Access先后順序調(diào)用各類操作的自動批量批改程序;(6)在Office操作題成績表中填寫標題行并計算MsOffice操作總成績(各類軟件操作成績之和);(7)刪除temp.txt;(8)彈出程序結(jié)束畫面,詢問是否自動打開Office操作題成績表文件。限于篇幅,這里只列出主程序文件中第5&6步驟的功能代碼如表3所示,其中刪除了所有延時語句、出錯檢測代碼。
表3 多份Office操作題自動批量批改AutoIt3代碼
五個操作大類各自的自動批量批改AutoIt3程序的實現(xiàn)思路如表 4所示,其中,各程序輸入的是各個操作大類對應(yīng)的待批改文件名和相應(yīng)的自動批改VBA代碼文本文件(注意程序運行時VBA宏或VBA模塊的位置),各程序一律將各類操作成績輸出到 Office操作題成績表文件、將各類操作批改意見輸出到“XX操作題批改報告.txt”。五個程序中,Word、Excel、PowerPoint、FrontPage四類操作的自動批改VBA代碼只需拷貝保存一次就可循環(huán)執(zhí)行多次,而 Access操作的自動批改VBA代碼只能循環(huán)一次、拷貝一次、執(zhí)行一次。篇幅所限,關(guān)于各類操作AutoIt3程序代碼的詳細實現(xiàn),請參看文獻[2]、[3]、[4]、[5]、[6]。
表4 各類操作的自動批量批改AutoIt3程序的實現(xiàn)思路
以揚州職業(yè)大學師范學院2013英教班學生試做提交的30份 Office操作題為素材(作業(yè)目錄如圖 2所示),在配置Windows XP簡體中文版、MS Office 2003英文版(默認中文輸入法)的PC上,先調(diào)低Office各類軟件宏安全性,后運行MsOffice_ AutoBatchCorrectReport_ A.exe,不僅生成學生的Office操作題成績(圖3截取前3位學生的成績作為示例),而且在每個學號文件夾中生成“XX操作題批改報告.txt”(圖4選取第2位學生的批改報告作為示例)。
圖2 作業(yè)目錄
圖3 前3位學生的Office操作題成績
雖然以上只是針對一套具體 Office操作題設(shè)計、實現(xiàn)了自動批量批改程序,但是,因為 Office操作題考查內(nèi)容千變?nèi)f化而題型形式基本不變,所以,只要簡單更換“作業(yè)目錄(課程&班級)”、“Word等各類操作對應(yīng)的待批改文件名(五個或更多)”、“Word等各類操作相應(yīng)的自動批改VBA代碼文本文件(五個)”三項內(nèi)容,即可快速實現(xiàn)另一套具體Office操作題的自動批量批改程序。經(jīng)過抽象提煉,基于 VBA和AutoIt3,本文提出一種Office操作題批量批改自動化通用解決方案。該方案的主要思路是:對于任意一套Office操作題,首先,按照Word、Excel、PowerPoint、FrontPage、Access五類軟件的操作技能考核要求,將該題劃分成若干小題、評分點并確定對應(yīng)分值;接著,為五類操作逐個編寫自動批改VBA代碼,將它們分別替換存入圖1所示五個文本文件中;然后,在圖1所示MsOffice_CorrectConfig_A.au3文件中修改“作業(yè)目錄(課程&班級)”,在圖 1所示五個操作大類自動批量批改AutoIt3程序文件中分別修改至少五個“對應(yīng)的待批改文件名”;最后,將修改完的*.au3文件重新編譯,運行MsOffice_AutoBatchCorrectReport_A.exe,即可生成批改成績和批改報告。
圖4 第2位學生的批改報告
本著“自頂向下分類設(shè)計、自底向上模塊實現(xiàn)”原則而提出的 Office操作題批量批改自動化方案,結(jié)構(gòu)清晰,容易實施,在需要批量批改 Office操作題作業(yè)或試卷的場合,應(yīng)用它將會事半功倍。
[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操作題自動批量批改程序的設(shè)計與實現(xiàn)[J].揚州職業(yè)大學學報,2014,18(1)∶36-39.
[3] 何劍.基于AutoIt3和VBA的Excel操作題自動批量批改程序的設(shè)計[J].蘇州市職業(yè)大學學報,2014,25(3)∶17-21.
[4] 何劍.基于AutoIt3和VBA的PowerPoint操作題自動批量批改[J].溫州職業(yè)技術(shù)學院學報,2014,14(3)∶56-60.
[5] 何劍.基于AutoIt3和VBA的FrontPage操作題自動批量批改[J].鎮(zhèn)江高專學報,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-),男,江蘇高郵人,揚州職業(yè)大學師范學院講師,碩士,從事應(yīng)用程序自動化、計算機輔助教學研究。