劉 巍 徐 鑫
相信大家對Microsoft Word 2003的使用都非常熟悉,在平時的授課過程中,當(dāng)遇到一些練習(xí)題時,你是讓學(xué)生以紙筆的方式進(jìn)行自測,還是求助于用Flash或者Authorware制作的練習(xí)題題庫課件呢?用紙筆未免顯得太笨拙,而用Flash或Authorware在掌握腳本代碼的編寫上都是需要投入大量精力去學(xué)習(xí)的。其實(shí)用Word 2003中的控件工具箱配合VBA就可以實(shí)現(xiàn)很多復(fù)雜的交互,而且其中的VBA編程是非常容易掌握的。課程中涉及的練習(xí)題類型一般包括主觀題和客觀題,主觀題以簡答為主,而客觀題則以單項選擇題、多項選擇題、填空題和判斷題居多。下面就以一次語文基礎(chǔ)知識測試為例,介紹各種題型的制作方法。
● 單項選擇題的制作
方法一:單擊“查看答案”按鈕給出答案。如圖1所示,每一道題包括題目、選項(4個)、查看答案按鈕。具體制作過程如下。
①題目:視圖→工具欄→控件工具箱→文本框(TextBox),在里面輸入題目,可右鍵單擊找到該控件的屬性,在其中修改其顏色、字體、字形等屬性。
②選項:控件工具箱→選項按鈕(OptionButton),選項按鈕的特點(diǎn)是在同一張幻燈片上只能選擇其中的一個。修改其caption屬性為“A、孔子”,其他選項可以復(fù)制第一個后再修改它們的caption屬性。
③“查看答案”按鈕:控件工具箱→命令按鈕(CommandButton)。因?yàn)橐獙?shí)現(xiàn)的是選擇某個選項后,單擊“查看答案”給出正確答案,所以此時需對此按鈕的VBA進(jìn)行編輯。雙擊或者右鍵單擊這個按鈕,進(jìn)入VBA編程環(huán)境。在Private Sub CommandButton1_Click()和End Sub語句間插入如下代碼:
ex = MsgBox("正確答案是A、孔子。", vbOKOnly, "提示")……當(dāng)單擊按鈕時,出現(xiàn)“提示”信息框,上面給出“正確答案是A、孔子”的答案,并有一個確定按鈕,如圖2所示。
方法二:選擇某一選項時給出交互答案,提示正確與否,“查看答案”按鈕給出正確答案,如圖3所示。
第①、②、③與方法一同,區(qū)別是要在每一個單選項的VBA中輸入代碼,以圖中第二小題的A錯誤答案(OptionButton5)、D正確答案(OptionButton8)為例。在OptionButton5中輸入代碼:
If OptionButton5.Value = True Then ……當(dāng)此選項按鈕被選擇
ex = MsgBox("答案錯誤,請繼續(xù)努力。", vbOKOnly, "提示")……彈出“錯誤”提示信息框,如圖3所示。
在OptionButton8中輸入代碼:
If OptionButton8.Value = True Then ……當(dāng)此選項按鈕被選擇
ex = MsgBox("Very Good!請繼續(xù)努力。", vbOKOnly, "提示")……彈出“good”信息框。
● 多項選擇題的制作
①如圖4所示,制作方法與單選同。
②中使用控件工具箱→復(fù)選框(CheckBox),它的特點(diǎn)是在同一頁面中可同時選擇多個。修改其caption屬性為“A、韓愈”,其他選項可復(fù)制第一個再修改它們的caption屬性。
③多選題要有多個答案同時滿足條件,因此“查看答案”按鈕的設(shè)置略有不同,以第一小題為例,正確答案是ACDE,應(yīng)輸入代碼:
If CheckBox1.Value = True And CheckBox3.Value = True And CheckBox4.Value = True And CheckBox5.Value = True Then……當(dāng)這四個復(fù)選框被同時選中時
ex = MsgBox("恭喜你,答對了!", vbOKOnly, "提示")……提示“答對了”
Else: ex = MsgBox("答案錯誤,再試一試吧!", vbOKOnly, "提示")……否則提示“錯誤”
End If
④“清空答案”按鈕的輸入代碼:
CheckBox1.Value = False CheckBox2.Value = False CheckBox3.Value = False
CheckBox4.Value = False CheckBox5.Value = False
● 判斷題的制作
判斷題的單選項也是選項按鈕,所有的設(shè)置與單選題類似,只不過兩個單選項為“√”和“×”,這兩個符號可以用插入特殊符號→數(shù)字符號,先插入到文本框里,再復(fù)制到caption屬性中,如圖5所示。
● 填空題的制作
題目的設(shè)置同單選題,填空的地方用控件工具箱→文本框(TextBox),其他文字用普通文本框,如圖6所示。
①“清空答案”按鈕與選擇題不同,輸入的代碼應(yīng)該是:
TextBox6.Value = Null TextBox7.Value = Null
②答案判斷:因?yàn)槭翘羁疹},所填答案是文本型,在文本框(以第一小題為例TextBox6)的VBA中條件書寫為:
If TextBox6.Value = "十年生死兩茫茫" Then
ex = MsgBox("恭喜你,回答完全正確!", vbOKOnly, "提示")
Else
ex = MsgBox("答案不對哦,再想想吧!", vbOKOnly, "提示")
End If
③“查看答案”按鈕的代碼:
ex = MsgBox("答案分別是“十年生死兩茫?!焙汀翱萏倮蠘浠桫f”", vbOKOnly, "提示")
● 簡答題的制作
主要是文本框的設(shè)置,簡答題作答通常只要有幾個關(guān)鍵的詞語表達(dá)出來就算正確,本著這個思想,我們給TextBox8輸入如下代碼:
Dim a, b, c, d, e, f, g As String
a = TextBox8.Value
b = "壯志難伸"
c = "痛苦"
d = "報國無門"
e = InStr(a, b) ……在輸入的文字中尋找“壯志難伸”這四個字,并把返回值賦給e
f = InStr(a, c) ……在輸入的文字中尋找“痛苦”這四個字,并把返回值賦給f
g = InStr(a, d) ……在輸入的文字中尋找“報國無門”這四個字,并把返回值賦給g
If e > 0 And f > 0 And g > 0 Then ……當(dāng)e、f、g的值同是大于0時
ex = MsgBox("答案完全正確!", vbOKOnly, "提示")……提示“答案完全正確”
ElseIf e > 0 Or f > 0 Or g > 0 Then……當(dāng)e、f、g的值任意一個大于0時
ex = MsgBox("回答不夠完整!", vbOKOnly, "提示")……提示“答案不完整”,如圖7所示。
Else……它們的值小于或者等于0時
ex = MsgBox("回答不正確!", vbOKOnly, "提示")……提示“回答不正確”
End If
這樣,一個完整的基于Word的綜合練習(xí)題庫就完成了。需要注意的是,當(dāng)制作完成后我們要在控件工具箱中點(diǎn)擊左上角的“設(shè)計模式”轉(zhuǎn)換按鈕,才可以激活題庫的各項功能。在題庫的應(yīng)用上,教師可以根據(jù)實(shí)際教學(xué)需要來不斷的豐富題庫,既能用在課堂復(fù)習(xí)練習(xí)上,也可以讓同學(xué)進(jìn)行自我測試,使用起來簡單靈活。