基于VBA控件技术的无纸化考试系统应用研究
2015-06-24兰清昭
兰清昭
摘要:在MS-Word中引用VBA控件技术完成考试系统自动计时、试卷登录身份识别、客观题自动评分、主观题手动评分、自动形成考生成绩册电子文档。让考生考试和教师评卷都在一个Word文档中进行,将广大教师从当前繁重的各种出题、制卷、监考发卷、收卷、评卷、计算总成绩、记录总成绩等工作中解脱出来。
关键词:VBA;MS-Word;控件;自动;代码;文本框;命令按钮
中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2015)11-0084-02
1 当前各种考试的现状分析
当前无论是各级学校各种课程考试,还是各种公司人才招聘考试,通常笔试都采用考生在纸质试卷上答题,纸质试卷通常用Word软件制作。评卷人员再在纸质试卷上评阅并给分,最后将得分手动记录到纸质成绩册上。如果要对得分作分析的话还需手工输入计算机形成电子成绩册。因此要完成考试过程须经过制卷、监考发卷、收卷、评卷、记成绩等烦琐的工作。
如果在Word制作的试卷文档文件的基础上加入VBA控件技术,借助计算机及网络工具,让考生答题、教师评卷、成绩记录都在一个Word文件中完成,最后还能自动形成成绩册文档,既可节约很多纸张,同时也大大减少评阅人员的繁锁工作。现在很多省份的高考评卷已经采用计算机及网络完成了。当今计算机应用如此普及,用计算机及网络自动完成考试全过程是完全可能的。
2 无纸化考试系统总体设计
该方法设计的无纸考试系统集成在一个Word文档中,由封面、多页试卷、用于提交的VBA按钮控件等构成。
封面页上有用于试卷使用者身份识别的两个VBA选项按钮控件;有考生输入考号姓名及评卷人员编号姓名的两个VBA文本框控件;有开始答题和开始评卷的两个VBA命令控钮控件;考试和评卷注意事项;注意事项是否阅读的VBA复选框控件。如下图1所示是封面部分截图。
试卷由多页构成,每小题都由题目(不能修改部分)、答题和得分的VBA文本框控件组成,如下图2所示为简答题。
图1 考试系统封面 图2 简答题
3 自动计时
打开一个未启用的试卷时会出现如下图3所示的考试时间提示对话框,提示整个考试的时间,并且开始计时,到时计算机会自动收卷。
图3 考试时间提示框 图4 评卷人员登陆窗口
4 身份识别
打开考试系统的Word文档时,如果是一张未启用的试卷,考生就可以选择考生的身份后在考生编号姓名后的VBA文本框控件中输入考号和姓名,勾选“考生注意事项已阅读”复选框后出现考生身份信息确认的提示框,确认无误后,单击“开始答题”可以进行考试。同时标题栏上显示考生信息,试卷文档已更名为考生的考号和姓名,这可以控制代考情况出现,在考试进行中监考人员凭标题栏上信息与考生的有效证件可以确认考生的身份是否相符,同时原始的试卷会自动删除。
考虑到试卷中有主观题需手动评卷的情况,考生答题后,教师要打开试卷进行评阅,为了防止考生反复打开文档,教师评阅时打开需密码验证才能打开,因此教师打开已用过的试卷时系统会出现如图4所示的提示框,要求输入评卷密码,方可打开试卷评阅。这也在考试时间上控制了考试的公平性。
附1:身份识别、自动计时的关键代码(打开MS-Word Visual basic编辑器)
Sub autoopen()
If Len(Trim(ActiveDocument.TextBox1.Text)) = 0 Then
MsgBox "考试时间2小时,到时计算机会自动收卷!", vbInformation, "欢迎使用本系统"
Call runtimer
Else
ps = InputBox("该试卷已考试,要评卷、查卷请输入口令", "登录密码")
If Trim(ps) = "123456" Then
Exit Sub
Else
MsgBox "评卷口令出错!试卷将关闭!"
Application.Quit
End If
End If
End Sub
Sub runtimer()
Application.OnTime Now + TimeValue("02:00:00"), "saveit"
End Sub
附2:试卷安全使用控制及根据考生编号与姓名自动更改试卷标题信息的关键代码:
Sub saveit()
ChangeFileOpenDirectory CurDir()
fn = Trim(TextBox1.Text)
ChangeFileOpenDirectory CurDir()
ActiveDocument.SaveAs2 FileName:=fn, FileFormat:= _
wdFormatXMLDocumentMacroEnabled, LockComments:=False, Password:="", _
AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False, CompatibilityMode:=14
Kill "XX试卷.docm"
End Sub
5 答题和得分VBA控件设计
一般标准化的判断题、选择题、填空题考生答题的VBA文本框控件需设置其Maxlength属性值为1或一个指定的长度值;而对于简答、阐述、作文题考生答题的VBA文本框控件需设置其Mulitline属性为True,为了节约篇幅还需设置其Scrollbars属性为2,让其可以滚动显示与输入,同时在答题控件上方提示分段换行方法为“Ctrl+Enter”;所有考生答题VBA文本框控件初始时其Enabled属性为True,而主观题得分控件初始时其Enabled属性为False。这就控制了考生只能在规定的地方答题,不能随便给主观题打分。
6 评分及自动生成考试成绩册
在对所有已考试试卷开始评卷之前,在试卷存放位置创建一个名为“XX课程XX班XX考试成绩.txt”文本文件,然后再打开考生已考过的试卷开始评卷。
客观题自动评分,主观题由有资格的评卷人员给出各小题及大题分数,单击考试系统最后的“评卷结束”VBA命令按钮控件,系统自动将考生“编号姓名、总成绩”以及评卷人员的“编号姓名”等信息自动写入事先已创建好的文本文件中。
附3:自动产生成绩册关键代码
ChangeFileOpenDirectory CurDir()
Open “XX课程XX班XX考试成绩.txt” for append as #1
Ksxm=trim(activedocument.textbox1.text) ‘考生编号姓名
Jsxm=trim(activedocument.textbox2.text) ‘评卷人员编号姓名
Zcj= ‘各题得分总和
Write #1,ksxm,zcj,jsxm
Close #1
7 其它安全控制
初始化,设置所有考生答题及得分的VBA文本框控件的Locked属性值为True,只有单击“开始答题”按钮控件后,才让考生答题文本框控件的Locked属性值为False。控制考生必须正确输入考生信息后方可答题。
提交试卷安全控制,单击考试系统文档最后的“提交试卷”会出现提交试卷注意事项对话框,让学生确认后交卷,同时将考生答题文本框的Locked属性设置为True,并自动关闭考试界面,不可再进行考试,使得考试能公平进行。
试卷保护保密,以MS-Word 2010制作的考试系统文档为例,使用“开发工具|保护|限制编辑”后勾选“仅允许在文档中进行此类型的编辑”,在下拉列表框中选择“填写窗体”,并单击“是,启动强制保护”,设置保护密码并保存考试系统文档即可。这样使得考生对试卷的卷面无法修改,而且禁用了很多Word软件的功能,让考试试卷不会被随便修改。
主观题答案保护,由于主观题答案也集成在考试系统文档中,为了让学生在考试过程中不能看到在代码中的客观题答案,对考试系统文档的代码也可以进行保密。通过设置考试系统文档工程的属性,设置“查看工程属性的密码”即可。这样考生就不能看见客观题的答案。
8 总结
作者用以上研究结果制作的《大学计算机基础》课程考试系统文档对学生进行单元测试,通过互联网或局域网发卷和收卷,在各次单元测试的考试中取得成功,大大减少了教师的工作量。详细的制作可以和作者进一步取得联系进行交流。