朱彥廷
摘 ?要: 計算機基礎考試采用傳統(tǒng)的人工閱卷,工作量大、時間長,準確率也不很高,因此非常有必要研究采用計算機自動閱卷。文章介紹了利用VBA語言實現(xiàn)計算機基礎考試中Word題目自動閱卷的方法,能夠大大提高閱卷的速度,而且結果準確、客觀、公平。
關鍵詞:?計算機基礎;自動閱卷;Word
中圖分類號: TP311????文獻標識碼:?A????DOI:10.3969/j.issn.1003-6970.2020.02.024
【Abstract】: The traditional manual marking method is used in the basic computer examination, which is characterized by heavy workload, long time and low accuracy. Therefore, it is necessary to study the automatic marking method by computer. This paper introduces a method of automatic marking of Word questions in computer basic examination by using VBA language, by which the speed of marking papers can be greatly improved, and the results are accurate, objective and fair.
【Key words】: Computer basis; Automatic marking; Word
0??引言
計算機基礎是高校各專業(yè)普遍開設的一門基礎課,考試通常為機試,主要考核學生Windows、Word、Excel、PowerPoint等軟件的操作能力[1],采用傳統(tǒng)的人工閱卷,工作量大、時間長,準確率也不很高[2],因此非常有必要研究采用計算機自動閱卷。
Word、Excel、PowerPoint文檔的內部結構十分復雜[3],Microsoft公司沒有公開,外人難以弄清,因而通過直接讀取文檔的方式進行自動閱卷幾乎不可行[4]。
VBA (Visual Basic for Applications)是微軟為了在其桌面應用程序中執(zhí)行通用的自動化(OLE)任務開發(fā)的編程語言[5],主要用來擴展應用程序的功能,特別是Microsoft Office軟件[6]。我們可以借助它讀取文檔的有關信息,從而實現(xiàn)自動閱卷。本文將探討Word題目的閱卷方法。
1 ?VBA
VBA是新一代標準宏語言,是基于Visual Basic發(fā)展而來的,它們具有相似的語言結構[7]。
VBA主要由許多對象組成[8]。一個對象代表一個文檔元素[9],如Documents代表所有打開的Word文檔,Paragraphs代表文檔中的所有段,Range代表文檔中的某一連續(xù)區(qū)域,Selection代表文檔中當前選擇的區(qū)域。Application代表Word程序,是其它所有對象的父對象,每次編寫程序代碼時,都應從它開始。一個對象通常又有幾個屬性、方法[10]。屬性是對象的性質。方法是對象可以進行的操作。
使用with語句可以簡化代碼,如
X. A = 10
X. B = 15
可簡化為
With X
. A = 10
. B = 15
End With
只要輸入1個X就行了,當X很長時,作用更顯著。
Word從2007開始,界面、功能有了很大改變,但在宏、VBA方面還是保持了較好的兼容性,以前的程序段幾乎仍可用于新格式文檔的評閱。
2??基本方法
考點:將文章標題“在桂林旅游購物”設置為二號、黑體(2分)。
首先單擊Visual Basic菜單欄中的“工程”,然后選擇“引用”,在打開的對話框里“可用的引用”中選擇“Microsoft Word 11.0 Object Library”(根據(jù)所用的Word的版本選擇),引入Word對象,程序段如下:
Dim fs As New FileSystemObject
定義fs為FileSystemObject對象并賦值
Dim a!用于存儲分值
Dim w As New Word.Application
定義w為Application對象并賦值
Dim t As Document定義t為Document對象
If fs.FileExists?("d:\t0\exam1\newd1.doc")?Then
如果文檔存在
w.Documents.Open "d:\t0\exam1\newd1.doc"
打開文檔
Set t = w.ActiveDocument
設置t為活動文檔(即剛打開的文檔)
With t.Paragraphs(1).Range.Font
第1段(即文章標題)的字體
Range不可省,因Font不是Paragraphs的下級對象