何 劍
(揚(yáng)州職業(yè)大學(xué),江蘇揚(yáng)州 225009)
大學(xué)計算機(jī)信息技術(shù)課程是普通高校和高職院校大一學(xué)生的一門公共基礎(chǔ)必修課,主要講授兩部分內(nèi)容:計算機(jī)信息技術(shù)的基礎(chǔ)理論知識、計算機(jī)常用軟件(Office應(yīng)用軟件為主)的基本操作技能。在Office應(yīng)用軟件的實驗教學(xué)中,為了提高學(xué)生的實際操作水平,需要教師及時批改學(xué)生的課堂或課后操作題作業(yè)并給出錯誤反饋。眾所周知,Word操作題的批改工作量很大,且人工批改難免誤判,本文針對該情況,提出一種Word操作題自動批量批改程序框架,并應(yīng)用AutoIt3和VBA具體實現(xiàn)。
AutoIt3是一種免費(fèi)的BASIC風(fēng)格的腳本語言,被設(shè)計用來自動化Windows圖形用戶界面和通用腳本編程;它組合使用模擬擊鍵、鼠標(biāo)移動和窗口/控件操作,以一種使用其他語言不可能或不可靠完成的方式實現(xiàn)任務(wù)自動化;AutoIt3也是一種非常小的、自包含的語言,它可以運(yùn)行在所有版本W(wǎng)indows平臺上而不需要惱人的運(yùn)行時庫[1]。
應(yīng)用程序自動化,主要指應(yīng)用程序的自動化技術(shù),即指應(yīng)用軟件的操作步驟、使用流程的自動化技術(shù),具體說來,利用這種技術(shù)可以按照人們的意愿代替人們實施對應(yīng)用軟件的自動操作。毫無疑問,AutoIt3就是一種基于Windows平臺的應(yīng)用程序自動化技術(shù)。
在Windows GUI環(huán)境下,Word操作題的每一小題都會有多種操作手段(下拉式菜單、彈出式菜單、工具欄按鈕、鍵盤快捷鍵、設(shè)置對話框等)、多樣操作順序可以完成同一效果,因此,單個學(xué)生Word操作題的自動批改不能依據(jù)操作手段或操作順序,只能依賴操作效果,事實上,教師人工批改也的確是這么做的。VBA是一種可以嵌入Word應(yīng)用軟件使用的編程語言,可以設(shè)置或讀取Word各類對象的屬性,所以,應(yīng)用VBA自動批改單個學(xué)生Word操作題是最合適的選擇。在此基礎(chǔ)上,應(yīng)用AutoIt3模擬按學(xué)號逐個批改多個學(xué)生Word操作題的過程,實現(xiàn)對多個學(xué)生Word操作題的自動批量批改程序。
圖1即是本文所設(shè)計的Word操作題自動批量批改程序框架。在此框架中,“某Word操作題自動批改宏代碼”、“作業(yè)目錄”、“待批改的某Word文件名”這三項需要用戶根據(jù)具體題目要求在運(yùn)行程序前確定。以后,無論哪一道Word操作題,只要用戶給出這三項,就可以套用該程序框架來實現(xiàn)具體針對某一道Word操作題的自動批量批改程序。
圖1 Word操作題自動批量批改程序框架
本文從大學(xué)計算機(jī)信息技術(shù)課程教材[2]中隨機(jī)選擇了一道Word操作題。調(diào)入“操作題”目錄下的ED1.RTF文件,按下列要求進(jìn)行操作:(1)設(shè)置頁面上、下頁邊距為2厘米,左、右頁邊距為3厘米,裝訂線位于左側(cè),裝訂線0.5厘米,每頁40行,每行38字符;(2)在正文第二段適當(dāng)位置插入藝術(shù)字“馬寅初的貢獻(xiàn)”,采用第五行第四列樣式,藝術(shù)字字體為黑體、40號、加粗,環(huán)繞方式為四周型;(3)設(shè)置正文第一段首字下沉3行,其余段落首行縮進(jìn)2字符;(4)將正文中所有的“人口”設(shè)置為紅色、加著重號;(5)將正文第三段分為偏左兩欄,加分隔線;(6)在正文第五段適當(dāng)位置插入“云形標(biāo)注”自選圖形,設(shè)置其環(huán)繞方式為緊密型,填充黃色,并在其中添加文字“向傳統(tǒng)人口觀念挑戰(zhàn)”;(7)設(shè)置頁眉為“人口危機(jī)”,頁腳為頁碼,均居中對齊;(8)將編輯好的文章以文件名:DONE,文件類型:RTF格式(*.rtf),存放于同一目錄中。下面以該題為例,基于上文提出的程序框架,具體實現(xiàn)針對該Word操作題的自動批量批改程序。
首先依據(jù)課程知識點(diǎn)考核要求對該Word操作題的每一小題劃分評分點(diǎn)和對應(yīng)分值。約定該題總分20分,若DONE.rtf文件不存在,即Word-08小題未完成,則該題不得分。限于篇幅,這里只列出Word-06小題的評分點(diǎn)及分值作為范例,如表1所示。
然后應(yīng)用VBA實現(xiàn)按評分點(diǎn)自動批改單個學(xué)生所做該道Word操作題的程序。為方便調(diào)試,可以在該程序開始處創(chuàng)建文本文件用以保存批改意見、在程序結(jié)束處彈出對話框用以顯示該題成績。
表1 Word操作題Word-06小題評分點(diǎn)及分值
限于篇幅,這里只列出Word-AutoBatchCorrectReport-VBA.txt中 Word-06 小題的自動批改宏代碼:
最后應(yīng)用AutoIt3實現(xiàn)對多個學(xué)生所做該道Word操作題的自動批量批改程序。最終程序源文件是 Word-AutoBatchCorrectReport.au3,其中依次調(diào)用了Header、Body、Footer三個代碼文件。程序文件清單如圖2所示。
圖2 程序文件清單
腳本 文 件 Word-AutoBatchCorrectReport-Header.au3實現(xiàn)以下功能:(1)彈出程序啟動畫面;(2)在程序當(dāng)前目錄下新建 temp.doc,將Word簡體中文版默認(rèn)中文輸入法切換為英文輸入法,打開宏對話框,創(chuàng)建新宏Word-AutoBatch-CorrectReport-VBA,創(chuàng)建到“所有的活動模板和文檔”,如果該宏名已經(jīng)存在,則替換創(chuàng)建,之后出現(xiàn)VBA編輯器窗口;(3)啟動記事本軟件,給定該程序所在目錄,打開Word-AutoBatchCorrectReport-VBA.txt,將記事本軟件默認(rèn)英文輸入法切換為中文輸入法,全文復(fù)制;(4)切換到VBA編輯器窗口,粘貼代碼,保存,關(guān)閉temp.doc;(5)切換回記事本窗口,關(guān)閉記事本軟件。
腳本 文 件 Word-AutoBatchCorrectReport-Body.au3主要功能如下:(1)由用戶輸入或直接設(shè)置作業(yè)目錄,例如:“C:大學(xué)計算機(jī)信息技術(shù)2013英教班”;(2)由用戶輸入或直接設(shè)置待批改的 Word文件名,例如:“DONE.rtf”;(3)在作業(yè)當(dāng)前目錄下新建temp.txt,用作臨時傳遞成績數(shù)據(jù);(4)在作業(yè)當(dāng)前目錄下新建Word操作題成績表文件,例如:“大學(xué)計算機(jī)信息技術(shù)-2013英教班-成績.xls”;(5)統(tǒng)計作業(yè)目錄下學(xué)號文件夾的數(shù)目$DirNum;(6)按照有效學(xué)號順序,依次進(jìn)入每一個學(xué)號文件夾(“XX”),循環(huán)執(zhí)行以下三個步驟:(A)創(chuàng)建“XX批改報告.txt”;(B)查詢“操作題”目錄下的“DONE.rtf”(文件名不區(qū)分大小寫)是否存在。如果此文件存在,則打開它,執(zhí)行宏 Word-AutoBatchCorrectReport-VBA,之后從temp.txt中獲取成績;如果此文件不存在,則設(shè)置成績?yōu)?,并將該種情況的批改意見寫入“XX批改報告.txt”;(C)將學(xué)號和成績格式化寫入Word操作題成績表文件。限于篇幅,這里只列出該腳本文件的核心代碼:
腳本 文 件 Word-AutoBatchCorrectReport-Footer.au3實現(xiàn)以下功能:(1)到程序目錄下打開temp.doc,將Word簡體中文版默認(rèn)中文輸入法切換為英文輸入法,打開宏對話框,刪除宏Word-AutoBatchCorrectReport-VBA,保存并關(guān)閉 temp.doc;(2)刪除作業(yè)目錄下的temp.txt;(3)刪除程序目錄下的temp.doc;(4)彈出程序結(jié)束畫面,詢問是否自動打開Word操作題成績表文件。
本文以揚(yáng)州職業(yè)大學(xué)2013英教班全體28位學(xué)生所提交該道Word操作題為案例來運(yùn)行自動批量批改程序進(jìn)行驗證。學(xué)生的作業(yè)目錄組織如圖3所示。
圖3 作業(yè)目錄
在 CPU為 Pentium D 2.66GHz、內(nèi)存為512MB、操作系統(tǒng)為Windows XP SP2簡體中文版的PC上,首先安裝MS Office 2003簡體中文版,默認(rèn)中文輸入法,調(diào)低宏安全性,取消“使用字符單位”,設(shè)置*.doc默認(rèn)關(guān)聯(lián)程序為Microsoft Office Word;然后雙擊圖2中的 Word-AutoBatch-CorrectReport.exe運(yùn)行自動批量批改程序;最后,所有學(xué)生該道Word操作題的成績都保存在“大學(xué)計算機(jī)信息技術(shù)-2013英教班-成績.xls”中,圖4僅截取前3位學(xué)生的成績作為示例,此外,每個學(xué)號文件夾下都會生成一個對應(yīng)該學(xué)生的批注文件“XX批改報告.txt”,圖5截取第1位學(xué)生的批改報告作為示例。
圖4 前3位學(xué)生的Word操作題成績
圖5 第1位學(xué)生的批改報告
本文提出的Word操作題自動批量批改程序框架簡單實用,直接套用它很容易實現(xiàn)具體某道Word操作題的自動批量批改程序。本文所寫程序在上述PC上運(yùn)行自動批量批改28道Word操作題合計耗時不足3分鐘,對比人工批改每道Word操作題約5分鐘,效率提高約50倍,如果PC配置更高,則耗時更少,效率提升甚至數(shù)百倍。無論是學(xué)校教學(xué),還是社會培訓(xùn),均可借助Word操作題自動批量批改程序框架輕松實現(xiàn)針對Word操作作業(yè)的自動批量批改或Word操作考試的自動批量判卷。
[1]JONATHAN BENNETT. AutoItScript[EB/OL].(2013-08-10)[2014-01-02].http://www.autoitscript.com/site/autoit/.
[2]孫華峰.信息技術(shù)實驗指導(dǎo)[M].北京:高等教育出版社,2013.