基于EXCEL VBA的标准化试卷处理系统的实现

2018-06-11 11:17冯迎春
现代职业教育·中职中专 2018年11期
关键词:控件文档模板

[摘 要] 目前,越来越多的卷面考試采用网络平台考试形式,这一考试形式给教育评价环节带来极大方便,但在应用条件上也存在一定限制。本系统利用EXCEL VBA操作WORD文档生成标准化电子文档,并通过相应处理完成文档的分发和结果的数据采集,完成试卷的生成和结果的收集,以期为当网络化平台考试条件不足时电子化考试所用。

[关 键 词] 标准化试卷;试卷处理系统;EXCEL VBA

[中图分类号] TP31 [文献标志码] A [文章编号] 2096-0603(2018)32-0170-02

教育评价是教学过程中不可缺少的一个基本环节,卷面考试仍是当前教育评价的主要形式。随着计算机及网络技术的进步,很多卷面考试采用了网络平台考试形式,网络平台考试具有不受软硬件平台限制、不受时间和地点限制、更新方便、数据收集方便等优点。但也存在一定不足,如需要一定的网站开发技术、需要能在互联网访问的服务器、需要相应的软硬件维护技术力量,一定程度上影响了网络平台考试的灵活性和方便性。

本系统利用EXCEL VBA操作WORD文档,产生包含标准化试卷内容的WORD文档模板,对试卷模板排版后将WORD试卷分发给考生答题,完毕通过网络收回各电子试卷,再通过本系统读取已填写试卷的内容,完成考试结果的收集过程。

一、系统的设计

(一)EXCEL工作表设计

EXCEL工作簿中有“试题”和“名单”两张表。“试题”表中存放试题信息,“名单”表存放学生名单及学生填写后的结果。二表结构如下:

(二)功能的设计

试卷的生成、复制和收回后读取结果的功能,均利用EXCEL VBA实现,下述代码需在EXCEL中按ALT+F11进入VBE后输入(考虑文章篇幅,代码中主要显示关键代码)。

1.生成试卷

通过下述代码,根据各小题题型不同采取不同控件,完成单选、多选和判断题的设计,生成“试卷模板.doc”,保存在与EXCEL文件所在的同一文件夹中。

Sub生成试卷( )

Set wApp=CreateObject("word. application") 打开word

Set wordd=wApp.documents.Add新建文档

Tm=Sheets("试题").[al].CurrentRegion

dls=1段落行数

For i=2 To UBound(Tm)题 1-N

If Tm(i, 2)<>Tm(i - 1, 2)Then

wordd.Paragraphs(dls).Range.Text=Tm(i, 2)&Chr(10):dls=dls+1题型

End If

wordd.Paragraphs(dls).Tange.Text=Tm(i, 3)&"."&Tm(i, 4)&Chr(10):dls=dls+1题干

If Tm(i, 2)Like"多*"Then根据题型确定控件序号

mct="Forms.CheckBox.1"

Else

mct="Forms.OptionButton.1"

End If

For j=5 To 8选1-4

mcp=Chr(64 + j - 4)&"."&Trim(Tm(i, j))

If Len(mcp) >2 Then

Set Wpr =wordd.Paragraphs(dls).Range最后行位置 Set Waia=wApp.ActiveDocument.InlineShapes.AddOLE Control(ClassType:=mct,Range:=Wpr)

With Waia.OLEFormat.Object

.Caption=mcp

.Name="T"&Tm(i, 1)&"_"&Chr(64 + j - 4)

.Width=Application.Min(Len(mcp)*11,390)

.AutoSize=True

.groupname="T"&Tm(i, 1)

End With

wordd.Paragraphs(dls).Range.InsertAfter(vbCrLf):dls=dls+1插入一段

End If

Next j

Next i

wordd.SaveAs ThisWorkbook.Path&"\试卷模板.doc":wApp.Quit

End Sub

2.复制试卷

根据“名单”中的考生名单将“试卷模板.doc”复制成以考生姓名为文件名的WORD文件。

Sub 复制试卷( )

sfile = ThisWorkbook.Path & "\试卷模板.doc"

For i = 2 To Worksheets("名单").[a1].CurrentRegion.Rows.Count

FileCopy sfile,ThisWorkbook.Path & "\" & Worksheets("名单").Cells(i, 2) & ".doc"

Next i

End Sub

3.读取结果

收回试卷文档后放在与EXCEL文件所在的同一文件夹中,利用“读取结果”可将该文档中各考生填写的内容读回“名单”中。

Sub读取结果( )

Set wApp=CreateObject("word,application") 打開word

Set Ws=Worksheets("名单")

Ws.Range("c2:ae2000").ClearContents

For fi=2 To WS.[al].CurrentRegion.Rows.Count逐文件

wApp.documents.Open ThisWorkbook.Path&"\"&Ws.Cells(fi, 2)&".doc"

For Each i In wApp.ActiveDocument.InlineShapes逐控件

With i.OLEFormat.Object

If.Name Like"T*"And.Value Then

Is=Mid(.Name,2,Len(.Name)-3):xs=Right(.Name,1)

Ws.Cells(fi, Is + 2).Value=Trim(Ws.Cells(fi, Is + 2))&xs

End If

End With

Naxt i

Nest fi

wApp.Quit

End Sub

二、系统的优点

该系统的优点主要体现在操作简便灵活、对使用者计算机技术要求低和零成本三个方面。

(一)操作简便灵活

该系统对教师来说,平时只需要使用EXCEL组织试题内容,较为复杂的试题内容如图形、表格和公式可通过对WORD试卷模板的排版来实现,WORD试卷模板的生成、试卷的更名复制和结果采集均能由系统自动完成。而且由于试题存放在EXCEL工作表中,修改和调整极为方便。

(二)对使用者的计算机技术要求低

该系统对教师来说,需要具体WORD和EXCEL的基本操作技能;对学生来说,需要具备基本的WORD操作,因此从目前情况来看,所有教师和学生应都具备这一考试形式所需能力。

(三)零成本

该系统从功能上来看,除了文件分发和收集过程要通过网络来实现之外,试卷生成、试卷填写和试卷结果采集仍属于单机操作,只要使用者的计算机能正常使用OFFICE,即可完成上述操作。因此通过本方式实施考试,不需增加额外的硬件和软件投入,在使用过程中也不需要额外的技术维护费用支出。

三、系统的扩展应用

(一)对非标准化试卷内容的处理

大多试卷都由标准化主观题和非标准客观题组成,完全标准化的试卷相对来说较少。对非标准化的主观题,可利用文本框来实现指定位置结果的收集。只需将VBA代码中ActiveX控件类型设为Textbox,即在“生成试卷( )”功能中,增加题型判断,将mct = "Forms.CheckBox.1"改成mct="Forms.textbox.1",同时设置文本框控件的属性,即可实现文本型主观题设计和结果收集。

(二)试题乱序的实现

对标准化试卷的考试来说,要防止学生偷看他人结果或相互传递答案等作弊,最好的方式是打乱各份试卷中客观题小题题序和选项顺序。要实现这一效果,可在EXCEL中增加“试卷库”表,试卷库来自试题库,按各考生分别生成试题,在根据试题库生成试卷库时,可随机生成小题顺序和选项顺序,从而实现随机试题和选项顺序这一效果。

(三)试卷唯一性的实现

电子文件形式的考试,还需要防止学生通过复制文件或复制试卷内容的方式进行作弊。单纯的WORD文档不具备标记特殊信息这一功能。在本系统中,试题内容是通过各Active X控件来实现的,可利用控件属性来给试题增加一些特殊标记。比如可以根据学生生成唯一码,将这唯一码写入控件名称OLEFormat.Object.Name中,使各份试卷同一试题的控件名称均不相同。试卷收回后对控件名称进行判断即可知道该试题属于哪位学生,从而确保学生只有亲手完成自己的电子试卷才为有效卷。

四、需说明的问题

本办法适用于OFFICE 2003及以上版本,但因WORD在自动恢复文档时可能会改变试题控件类型,因此如遇试卷文件在填写时意外关闭,要重新复制试卷文件做题,不要使用WORD自带的恢复功能。

对EXCEL中的结果判分及运用即为单元格值的匹配运用,方法较多且较为简单。故本文仅涉及试卷生成、分发和结果收集,未涉及对结果的匹配判分。

参考文献:

[1]崔明山.运用ASP设计网络考试系统思路浅探[J].职教论坛,2007(4):58-59.

[2]冯迎春.利用EXCEL VBA自动判分[J].中国教育信息化,2014(2):75-76.

猜你喜欢
控件文档模板
浅谈Matlab与Word文档的应用接口
使用“填表单”微信小程序 统计信息很方便
有人一声不吭向你扔了个文档
轻松编辑PDF文档
基于.net的用户定义验证控件的应用分析
Inventors and Inventions
把握数学解题模板,轻松做题一二三
SOLIDWORKS Electrical清单模板定制方法
Word文档 高效分合有高招
文档提效 用好WPS模板