基于Word的交互习题库的设计与制作
2009-03-31刘巍徐鑫
刘 巍 徐 鑫
相信大家对Microsoft Word 2003的使用都非常熟悉,在平时的授课过程中,当遇到一些练习题时,你是让学生以纸笔的方式进行自测,还是求助于用Flash或者Authorware制作的练习题题库课件呢?用纸笔未免显得太笨拙,而用Flash或Authorware在掌握脚本代码的编写上都是需要投入大量精力去学习的。其实用Word 2003中的控件工具箱配合VBA就可以实现很多复杂的交互,而且其中的VBA编程是非常容易掌握的。课程中涉及的练习题类型一般包括主观题和客观题,主观题以简答为主,而客观题则以单项选择题、多项选择题、填空题和判断题居多。下面就以一次语文基础知识测试为例,介绍各种题型的制作方法。
● 单项选择题的制作
方法一:单击“查看答案”按钮给出答案。如图1所示,每一道题包括题目、选项(4个)、查看答案按钮。具体制作过程如下。
①题目:视图→工具栏→控件工具箱→文本框(TextBox),在里面输入题目,可右键单击找到该控件的属性,在其中修改其颜色、字体、字形等属性。
②选项:控件工具箱→选项按钮(OptionButton),选项按钮的特点是在同一张幻灯片上只能选择其中的一个。修改其caption属性为“A、孔子”,其他选项可以复制第一个后再修改它们的caption属性。
③“查看答案”按钮:控件工具箱→命令按钮(CommandButton)。因为要实现的是选择某个选项后,单击“查看答案”给出正确答案,所以此时需对此按钮的VBA进行编辑。双击或者右键单击这个按钮,进入VBA编程环境。在Private Sub CommandButton1_Click()和End Sub语句间插入如下代码:
ex = MsgBox("正确答案是A、孔子。", vbOKOnly, "提示")……当单击按钮时,出现“提示”信息框,上面给出“正确答案是A、孔子”的答案,并有一个确定按钮,如图2所示。
方法二:选择某一选项时给出交互答案,提示正确与否,“查看答案”按钮给出正确答案,如图3所示。
第①、②、③与方法一同,区别是要在每一个单选项的VBA中输入代码,以图中第二小题的A错误答案(OptionButton5)、D正确答案(OptionButton8)为例。在OptionButton5中输入代码:
If OptionButton5.Value = True Then ……当此选项按钮被选择
ex = MsgBox("答案错误,请继续努力。", vbOKOnly, "提示")……弹出“错误”提示信息框,如图3所示。
在OptionButton8中输入代码:
If OptionButton8.Value = True Then ……当此选项按钮被选择
ex = MsgBox("Very Good!请继续努力。", vbOKOnly, "提示")……弹出“good”信息框。
● 多项选择题的制作
①如图4所示,制作方法与单选同。
②中使用控件工具箱→复选框(CheckBox),它的特点是在同一页面中可同时选择多个。修改其caption属性为“A、韩愈”,其他选项可复制第一个再修改它们的caption属性。
③多选题要有多个答案同时满足条件,因此“查看答案”按钮的设置略有不同,以第一小题为例,正确答案是ACDE,应输入代码:
If CheckBox1.Value = True And CheckBox3.Value = True And CheckBox4.Value = True And CheckBox5.Value = True Then……当这四个复选框被同时选中时
ex = MsgBox("恭喜你,答对了!", vbOKOnly, "提示")……提示“答对了”
Else: ex = MsgBox("答案错误,再试一试吧!", vbOKOnly, "提示")……否则提示“错误”
End If
④“清空答案”按钮的输入代码:
CheckBox1.Value = False CheckBox2.Value = False CheckBox3.Value = False
CheckBox4.Value = False CheckBox5.Value = False
● 判断题的制作
判断题的单选项也是选项按钮,所有的设置与单选题类似,只不过两个单选项为“√”和“×”,这两个符号可以用插入特殊符号→数字符号,先插入到文本框里,再复制到caption属性中,如图5所示。
● 填空题的制作
题目的设置同单选题,填空的地方用控件工具箱→文本框(TextBox),其他文字用普通文本框,如图6所示。
①“清空答案”按钮与选择题不同,输入的代码应该是:
TextBox6.Value = Null TextBox7.Value = Null
②答案判断:因为是填空题,所填答案是文本型,在文本框(以第一小题为例TextBox6)的VBA中条件书写为:
If TextBox6.Value = "十年生死两茫茫" Then
ex = MsgBox("恭喜你,回答完全正确!", vbOKOnly, "提示")
Else
ex = MsgBox("答案不对哦,再想想吧!", vbOKOnly, "提示")
End If
③“查看答案”按钮的代码:
ex = MsgBox("答案分别是“十年生死两茫茫”和“枯藤老树昏鸦”", vbOKOnly, "提示")
● 简答题的制作
主要是文本框的设置,简答题作答通常只要有几个关键的词语表达出来就算正确,本着这个思想,我们给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 ……当e、f、g的值同是大于0时
ex = MsgBox("答案完全正确!", vbOKOnly, "提示")……提示“答案完全正确”
ElseIf e > 0 Or f > 0 Or g > 0 Then……当e、f、g的值任意一个大于0时
ex = MsgBox("回答不够完整!", vbOKOnly, "提示")……提示“答案不完整”,如图7所示。
Else……它们的值小于或者等于0时
ex = MsgBox("回答不正确!", vbOKOnly, "提示")……提示“回答不正确”
End If
这样,一个完整的基于Word的综合练习题库就完成了。需要注意的是,当制作完成后我们要在控件工具箱中点击左上角的“设计模式”转换按钮,才可以激活题库的各项功能。在题库的应用上,教师可以根据实际教学需要来不断的丰富题库,既能用在课堂复习练习上,也可以让同学进行自我测试,使用起来简单灵活。