摘要:鑒于VBA與Office系列軟件的良好溝通作用,及word的宏錄制功能,提出一種改進的基于VBA的WORD操作自動評閱方法。該方法能適應于更廣泛的word操作判斷,適用于日常的word操作作業評閱。系統經真實實驗數據測試,實驗結果表明,本文提出的算法能夠有效提高教師評閱word操作作業的效率,且系統可行性好。
關鍵詞:word操作;VBA;自動評分
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)21-5802-02
Word Operation Automatic Marking System based on VBA
REN Xian,TANG Feng-xian,TANG Peng-jie
(Computer and Information Science Department of Hechi University, Yizhou 546300, China)
Abstract: In view of the good communication role between VBA and Office software, and the macro recording function, proposed an improved method of word automatic marking based on VBA. This method can adapt to all kinds of word operation judge, apply to the daily of word processing operations marking. The system tested by real data, and experimental results show that the algorithm can effectively improve the teachers marking word processing operation efficiency, and is feasible.
Key words: word operation; VBA; automatic marking
由于VBA與office軟件本身具有的良好溝通作用,VBA可直接獲取office中的各種對象并完成對其的處理工作,而自動記錄并生成規則方式可以應付各種操作要求,使得評分并不固定在常用考試項目上,因此,針對學生通過郵箱發送來的word操作作業文檔評閱問題,本文提出一種基于VBA的word操作作業自動評閱系統,該系統的答案生成采用word的錄制宏功能記錄操作,并使用VBA語言對操作進行提煉處理,生成初始規則,再結合教師檢查,生成標準答案規則。
1 設計思想
本系統包括三個主要模塊:初始規則生成模塊,規則刪減模塊,評分模塊和結果輸出模塊。
初始規則生成模塊:教師操作源word文檔,使用錄制宏功能記錄操作,系統自動對記錄的操作進行提煉處理,生成初始規則,并送入規則刪減模塊顯示。
規則刪減模塊:教師可通過該界面查看初始規則,并判斷初始規則是否準確,并可做適當調整,最后設置各項分數值,送入數據庫存儲,完成對規則的提交。
評分模塊:選擇作業所在文件夾,輸入標準答案名稱,系統自動取出文件夾中word文檔,直至全部處理完成。
結果輸出模塊:顯示各個學生的作業成績,以及扣分點信息。
2 關鍵算法
關鍵算法1:文檔的預處理。學生對文檔的操作過程可能不像老師預計的那樣,可能在操作過程中加入了很多沒有要求的操作或修改,尤其是回車符、空格的濫用。因此,本文在打開文檔時,將預先去掉文檔多余的空格與空段落標記。方法為直接獲取連續空格和連續段落標記,并將重復的空格與段落標記去除。
關鍵算法2: VBA宏只記錄操作本身,不記錄操作對象,但對于全文、段落、圖、表對象可直接由操作名判斷。但word中有很多的操作是對單個的字、詞、句子進行的操作,而這從宏記錄中無法直接得知,如表1錄制的一段宏操作,其功能為移動光標到指定位置,并選中指定位置的相關文本進行文字格式的設置,由表中無法看出來是對哪些字符進行了選中并加粗,而這就是本文要解決的一個問題。
本文結合宏記錄與word文檔,提取出操作對象,為此,本項目中如要對選中的文本進行操作,將插入一條Selection.Copy語句,將選中的文本放入剪切板,以此獲得操作文本對象(wdPasteDefault),為進一步定位該文本,同時記錄文本的段落號及行號作為位置參考。再記錄操作屬性(Bold),屬性值(wdToggle),生成一條初始記錄(“…… ”.Bold=wdToggle,第X段X行)。
關鍵算法3:通過VBA宏錄制功能可以快速記錄和設置各項對段落、字體、頁面的各項屬性,但記錄的各屬性并不全是需要考察的對象,因此,需要對此進行精簡,這可以從規則刪減界面由教師進行篩選,但這個任務量較大,為此,本文對此進行了改進。方法為:
1) 由VBA錄制文檔所要求操作的模塊的各項原始屬性;
2) 教師按作業要求操作文檔,修改各項屬性;
3) 系統自動將對新設置的屬性與原有屬性進行對比,判別哪些屬性發生了修改,并加以記錄,對于未修改的屬性不予考慮。
關鍵算法4:評分模塊的難點在于如何定位操作對象并獲取相應屬性的值。而這正是VBA的強勢所在,利用VBA提供的Application、Documents、selections、Range等,可以準確定位全文、頁面、段落、圖、表、藝術字等對象,并獲取其當前屬性。對于少量文本的定位,本文結合解決方案一獲取的文本區域位置進行定位可取得較準確結果。因此,評分模塊的難點問題可得到解決,其它按照匹配規則進行評分即可。
關鍵算法5:本文系統主要用于作業的評閱,因此,除了得到學生成績外,還應指出錯誤原因,且該錯誤點既要通報給學生,也要通報給教師,以便及時解決存在的問題。對此,本文在評分規則逐條匹配的過程中,加入了錯誤記錄功能。步驟如下:
Step1:打開文檔,逐條進行規則匹配;
Step2:規則匹配判斷成功,記分(score=score+分值),返回取下一條規則;
Step2:不成功,error=error+操作對象+操作屬性+操作屬性值+“/n”,返回取下一條規則;
Step3:規則匹配結束,error<>“”,則將error添加到文檔末尾,同時與score記入成績庫;否則,僅將成績記入成績庫
Step4:關閉文檔。
3 系統實現
本文充分利用系統提供的VBA函數來實現評閱系統。對系統進行了簡單的界面設計,包括:登錄、規則錄制、規則刪減及分值設定界面、結果輸入界面等,數據庫采用access實現。為驗證本系統性能,抽取60位同學三次word操作作業文檔作為測試數據進行測試。采用系統測試與人工核查結合進行,最后對平均準確率及錯誤提示有效性進行統計分析,測試結果為表2所示。結果反映出該評閱系統成績評判基本準確,錯誤說明提示達到預期目標,可行性較好。
4 總結
通過測試,本文提出的基于VBA的WORD操作作業評閱系統達到預期的目的,對教師的作業評閱起到很大幫忙,有良好的市場前景。本系統將進一步對WORD操作評閱系統進行完善,并逐步增加EXCEL、PowerPoint的操作評閱功能。
參考文獻:
[1] 李強,陳遵德.基于XML的Microsoft Office操作題自動評分及題庫建設的實現[J].順德職業技術學院學報,2007,5(1):28-31.
[2] 宗德才.操作題自動評分系統的設計與實現[J].計算機工程與設計,2010,5(31):1156-1160.
[3] 劉冬華.Word操作題的自動評分[J].電腦知識與技術,2010,6(9):2299-2300.
[4] 劉家寧.基于HTMuxML方式的自動評卷系統[J].華南理工大學學報,2003,32(6):64-66.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文