摘要:VBA是微軟Office辦公軟件中各套件內(nèi)嵌的編程語言,它是“寄生在Office產(chǎn)品中的Visual Basic”,使計算機(jī)自動判卷已成為一種重要的考試方式之一。文章對判斷題的自動判分功能進(jìn)行了研究,設(shè)計出了相應(yīng)的程序,此功能已在計算機(jī)課程結(jié)束考試中發(fā)揮了較好的效果。
關(guān)鍵詞:VBA;控件;自動判卷
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2008)22-604-02
The Automatic Grade Point of Judgment Making Use of the Technique of Excel VBA
WANG Du-xiang1, YU Sheng1, ZHANG Jun2
(1.Teaching and Research Section of computer, Bengbu Navy school, Bengbu 233012, China ;2. Teaching and guarantee section, Bengbu Navy school, Bengbu 233012, China)
Abstract: VBA is the programme language which is embedded in office software of Microsoft, It is \" Visual Basic which live in the office product\" and makes the automatic grade point to have becomea kind of important examination method. The article carried on the research to the automatic grade point function of judgment, designed correlation procedure. This function had already obtained better effect in the be over the examination about computer.
Key words: VBA; control; the automatic judgement to examination paper
目前,很多學(xué)校和認(rèn)證機(jī)構(gòu)采用了上機(jī)考試,電腦自動判卷的考試模式。所采用的技術(shù)各式各樣,但目的都是用來讓人們從繁重的判卷勞動中解放出來,一方面可以大大降低手動判卷帶了的誤判、錯判的概率;另一方面,更有利于體現(xiàn)考試公平、公正的原則。通常考試的題型有很多,本文著重討論利用ExcelVBA技術(shù)實現(xiàn)判斷題的自動判分功能。
1 卷面設(shè)計
判斷題卷面設(shè)計判斷題是考試中很常見的題型。判斷題的命題通常是一些比較重要的或有意義的概念、事實、原理和結(jié)論。用來考查考生對這些知識點的理解和掌握,結(jié)論必須明確,不可含糊。判斷題包含題干、選項或答題區(qū)。提干部分可以用大的合并單元格來放置,選項部分則采用組合框控件來完成(設(shè)計界面如圖1)。
2 輸入到答題卡
為了方便電腦識別答案,同時也為了簡化代碼的編寫。將判斷題答題卡放在“答題卡”工作表中(見圖2),將判斷題標(biāo)準(zhǔn)答案放在“標(biāo)準(zhǔn)答案”工作表中(見圖3)。
2.1 給圖1中的控件添加選項
代碼如下:
Private Sub Worksheet_Activate()
If ComboBox1.ListCount = 0 Then
ComboBox1.AddItem \"對\"
ComboBox1.AddItem \"錯\"
End If
If ComboBox2.ListCount = 0 Then
ComboBox2.AddItem \"對\"
ComboBox2.AddItem \"錯\"
End If
If ComboBox3.ListCount = 0 Then
ComboBox3.AddItem \"對\"
ComboBox3.AddItem \"錯\"
End If
If ComboBox4.ListCount = 0 Then
ComboBox4.AddItem \"對\"
ComboBox4.AddItem \"錯\"
End If
End Sub
代碼說明:在添加選項之前有個判斷,當(dāng)組合框已有選項時,就不再添加,這樣可以避免重復(fù)添加的現(xiàn)象。
2.2 將選定的項目自動填入答題卡中
當(dāng)考生在判斷題的后面選項做出判斷后,系統(tǒng)自動將考生答案錄入到答題卡的正確位置中。當(dāng)考生修改答案時,答題卡中的答案也隨著考生的修改而做出相應(yīng)修改。程序設(shè)計代碼如下:
Option Explicit
‘定義一個模塊級別的變量
Dim s As String
Private Sub ComboBox1_Change()
s = ComboBox1.Value
Worksheets(2).Cells(5, 2).Value = s
End Sub
Private Sub ComboBox2_Change()
s = ComboBox2.Value
Worksheets(2).Cells(5, 3).Value = s
End Sub
Private Sub ComboBox3_Change()
s = ComboBox3.Value
Worksheets(2).Cells(5, 4).Value = s
End Sub
Private Sub ComboBox4_Change()
s = ComboBox4.Value
Worksheets(2).Cells(5, 5).Value = s
End Sub
代碼說明:
①定義一個區(qū)域內(nèi)變量S,用來存儲每個控件的值。
②當(dāng)每個組合框控件變化時,用S提取出此時組合框的值,并將其值覆給答題卡中的該題所對應(yīng)的單元格。
3 判斷題自動判卷
在“答題卡”工作表中,添加一個命令按鈕,將其Captions設(shè)為“提交試卷”,在其Click事件中,添加如下代碼:
Private Sub CommandButton1_Click()
Dim a As String
Dim b As String
Dim i As Integer, n As Integer
Dim ts As Integer
ts = 0
‘核對兩表單元格
For i = 2 To 5
‘分別從《答題卡》和《標(biāo)準(zhǔn)答案》工作表中提取出對應(yīng)單元格的值
a = Worksheets(2).Cells(5, i).Value
b = Worksheets(3).Cells(5, i).Value
‘比較,正確就加分
If a = b Then ts = ts + 5
Next i
‘給出分?jǐn)?shù)
MsgBox \"判斷題總分為\" ts
End Sub
代碼說明:
①分別將答題卡所在工作表(WorkSheets(2))和標(biāo)準(zhǔn)答案的工作表(WorkSheets(3))中的對應(yīng)位置進(jìn)行相互比較。
②用變量a存儲考生答案,用變量b存儲標(biāo)準(zhǔn)答案。
③比較a、b的值,相同則給總分加5分(假設(shè)每道判斷題為5分)
④彈出對話框,顯示判斷題的總分。
通過前面幾個步驟,讀者就可以編寫出一個能根據(jù)考生的選擇,自動填寫答題卡的系統(tǒng)。然后,就可以編寫出一套自動化判卷系統(tǒng),通過一個功能按鈕完成自動對考生的作答評分。在實戰(zhàn)中體會VBA編程的設(shè)計思路,加強(qiáng)對Excel對象的理解能力,從而提升VBA的編程能力,學(xué)以致用。
參考文獻(xiàn):
[1] 張峋.Excel VBA入門與典型實例[M].北京:清華大學(xué)出版社,2007:264-289.
[2] 武馬群.計算機(jī)應(yīng)用技術(shù)基礎(chǔ)[M].北京:中國宇航出版社,2003:237-243.
[3] 柳青.Visual Basic程序設(shè)計教程[M].北京:高等教育出版社,2006:44-87.