朱彥廷
摘 ?要: 計算機基礎(chǔ)考試采用傳統(tǒng)的人工閱卷,工作量大、時間長,準(zhǔn)確率也不很高,因此非常有必要研究采用計算機自動閱卷。文章介紹了利用VBA語言實現(xiàn)計算機基礎(chǔ)考試中Word題目自動閱卷的方法,能夠大大提高閱卷的速度,而且結(jié)果準(zhǔn)確、客觀、公平。
關(guān)鍵詞:?計算機基礎(chǔ);自動閱卷;Word
中圖分類號: TP311????文獻標(biāo)識碼:?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??引言
計算機基礎(chǔ)是高校各專業(yè)普遍開設(shè)的一門基礎(chǔ)課,考試通常為機試,主要考核學(xué)生Windows、Word、Excel、PowerPoint等軟件的操作能力[1],采用傳統(tǒng)的人工閱卷,工作量大、時間長,準(zhǔn)確率也不很高[2],因此非常有必要研究采用計算機自動閱卷。
Word、Excel、PowerPoint文檔的內(nèi)部結(jié)構(gòu)十分復(fù)雜[3],Microsoft公司沒有公開,外人難以弄清,因而通過直接讀取文檔的方式進行自動閱卷幾乎不可行[4]。
VBA (Visual Basic for Applications)是微軟為了在其桌面應(yīng)用程序中執(zhí)行通用的自動化(OLE)任務(wù)開發(fā)的編程語言[5],主要用來擴展應(yīng)用程序的功能,特別是Microsoft Office軟件[6]。我們可以借助它讀取文檔的有關(guān)信息,從而實現(xiàn)自動閱卷。本文將探討Word題目的閱卷方法。
1 ?VBA
VBA是新一代標(biāo)準(zhǔn)宏語言,是基于Visual Basic發(fā)展而來的,它們具有相似的語言結(jié)構(gòu)[7]。
VBA主要由許多對象組成[8]。一個對象代表一個文檔元素[9],如Documents代表所有打開的Word文檔,Paragraphs代表文檔中的所有段,Range代表文檔中的某一連續(xù)區(qū)域,Selection代表文檔中當(dāng)前選擇的區(qū)域。Application代表Word程序,是其它所有對象的父對象,每次編寫程序代碼時,都應(yīng)從它開始。一個對象通常又有幾個屬性、方法[10]。屬性是對象的性質(zhì)。方法是對象可以進行的操作。
使用with語句可以簡化代碼,如
X. A = 10
X. B = 15
可簡化為
With X
. A = 10
. B = 15
End With
只要輸入1個X就行了,當(dāng)X很長時,作用更顯著。
Word從2007開始,界面、功能有了很大改變,但在宏、VBA方面還是保持了較好的兼容性,以前的程序段幾乎仍可用于新格式文檔的評閱。
2??基本方法
考點:將文章標(biāo)題“在桂林旅游購物”設(shè)置為二號、黑體(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
設(shè)置t為活動文檔(即剛打開的文檔)
With t.Paragraphs(1).Range.Font
第1段(即文章標(biāo)題)的字體
Range不可省,因Font不是Paragraphs的下級對象