当前位置:文档之家› Excel操作题自动阅卷系统的设计与实现

Excel操作题自动阅卷系统的设计与实现

Excel操作题自动阅卷系统的设计与实现
作者:彭仁杰
来源:《科学与财富》2014年第08期
摘要:本文提出了关于Excel操作题的自动评分的设计方法以及实现过程,主要包括包括单元格格式的阅卷、数据处理的阅卷、图表格式的阅卷,并给出其主要代码。

关键词:Excel;自动阅卷;VB
1 引言
目前,随着计算机在日常学习和工作中使用的越来越普及,计算机的相关培训也越来越多。

其中Excel培训占了很大比重。

从中学信息技术课程到大学一级考试,再到职称计算机考试,都有对Excel操作题的考核。

如果能采用自动组卷、自动阅卷、以及考试管理功能的计算机考试系统来进行培训,可以大大提高工作效率。

本文试着探讨在考试系统中实现Execl 操作题的自动阅卷功能。

2 关键技术
2.1 VBA
Visual Basic for Applications(VBA)是一种Visual Basic 的一种宏语言,主要用来扩展Windows 的应用程序功能,特别是Microsoft Office 软件,Excel操作题自动阅卷功能就需要依靠VBA技术来实现对Excel的控制。

2.2 Excel对象模型
(1)Application对象:Application对象是Excel对象模型中的顶级对象。

使用Application 对象可以确定或指定应用程序级属性或执行应用程序级方法,全局的对象比如菜单,工具条都属于Application对象。

Application 对象也是访问Excel对象模型其它部分的基础。

(2)Workbooks对象和Workbook对象:Workbooks对象包含Microsoft Excel中所有当前打开的Workbook对象,是Workbook对象的集合。

Workbook对象代表Microsoft Excel工作簿。

某一时候只有一个Workbook处于编辑状态,这个Workbook叫做ActiveWorkbook(活动工作簿)。

(3)Worksheets对象和Worksheet对象:Worksheets对象包含工作簿中所有的Worksheet 对象,是Worksheet对象的集合。

Worksheet对象是Worksheets集合的成员,代表一张工作表。

(4)Range对象:Range对象代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。

(5)ChartObjects对象和ChartObject对象:ChartObjects对象为指定的图表工作表或工作表上所有ChartObject 对象的集合。

每个ChartObject 对象代表一个嵌入图表。

ChartObject 对象的作用是作为Chart对象的容器。

ChartObject 对象的属性和方法控制工作表上嵌入图表的外观和尺寸。

3 Excel操作题主要题型
3.1 Excel操作题主要有三类题型:
一是单元格格式,包括行高、列宽、单元格内文字的字体、字号、颜色、对齐方式,单元格边框等;二是数据处理,包括表格内数据的公式或函数计算、排序、筛选、分类汇总等;三是图表,包括数据范围的选择、图标类型等。

3.2 单元格格式
单元格边框设置信息由Border 对象获得。

Border 对象的Color 属性设置单元格的边框色, LineStyle 属性设置单元格的边框线型, Weight 属性设置单元格的边框粗细。

单元格字体设置信息由Font 对象获得。

一个Sheet对象的Range 属性表示工作表中的一个区域对象,区域的范围由地址字符串指定,如Activesheet1range表示当前工作表中的单元格。

Range对象的Font 属性表示单元格中的文字的字体设置对象。

因此, Font 对象的Name 属性表示单元格中文字的字体, Size 属性表示单元格中文字的字号, Color属性表示单元格中文字的颜色,Vertical属性表示单元格中文字的垂直对齐方式, HorizontalAlignment 属性表示单元格中文字的水平对齐方式。

3.3 数据处理格式
主要有排序、筛选(包括自动筛选和高级筛选)、分类汇总三种。

排序操作的设置信息由Range 对象获得,Range对象的Sort方法设置了排序。

自动筛选格式的设置信息由Filter 对象获得。

Sheet对象的AutoFiler属性表示工作表中的自动筛选对象Filter。

Filter 对象的Criteria1属性和Criteria2 属性则分别表示为自动筛选所设置的两个筛选值。

Operator 属性设置筛选条件,可为下列X1FormatConditionOperator 常量之一: X1Betw een、X1Equal等。

高级筛选格式的设置信息由Range对象获得。

Range对象的AdvancedFilter方法设置了高级筛选。

分类汇总格式的设置信息由Range 对象获得。

Range对象的Subtotal方法设置了分类汇总。

3.4 图表格式
图表格式包括图表类型、图表标题、图例等。

图表格式信息由ChartObject对象获得。

Sheet对象的ChartObjects属性表示工作表中的图表对象集合,该对象集合由文件中所有的
ChartObject对象组成,代表工作表中的嵌入式图表,每个ChartObject对象对应一个图表。

ChartObject对象的作用是作为对象的容器,包容多个对象,通过这些对象的属性和方法控制工作表上嵌入式图表外观和尺寸。

ChartObject对象的Chart 属性返回一个Chart对象,它代表了指定对象所包含的图表。

这个Chart 对象的ChartTitle 属性返回一个ChartTitle 对象,该对象代表了图表的标题,Legend 属性返回一个Legend 对象,该对象代表了指定图表中的图例。

ChartType 属性返回或设置图表类型。

4 自动阅卷系统的实现
4.1基本操作:
(1)定义应用程序对象变量和文档对象:
Dim xlapp As Excel.Application : Dim xlbook As Excel.Workbook
(2)打开所要操作的Excel 文档:
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Open(Excel文件名)
(3) Excel 文档使用完毕,释放对象:
xlbook.Close : xlapp.Quit
Set xlbook = Nothing : Set xlapp = Nothing.
4.2主要思路
Excel操作主要对工作表中的数据进行处理,其标准答案和考生答题结果均以Excel工作簿形式存在。

Excel工作簿也是由许多对象组成的。

评分时只需读取指定工作表中数据有变动的单元格区域内相关对象的属性值,然后采用单元格遍历的算法逐个比较,从而给出得分。

4.3 具体代码
对于公式编辑的评阅方法是:首先通过HasFormula 属性判断其是否有公式,如没有,则得0 分;如有,再将其单元格中计算出来的值与样卷中相应单元格的值进行比较,如相等,则得分。

其主要代码如下:
If xlbooksj.ActiveSheet.Range(Chr(j)& i).HasFormula And xlbooksj.ActiveSheet.Range (Chr(j)& i).Value = xlbookbz.ActiveSheet.Range(Chr(j) & i).Value Then n = n + 1 '正确的单元格计数
对于图表的评分,在数据源相同的前提下,逐个判断每个数据单元格的值。

主要代码如下:
If xlbooksj.ActiveChart.SeriesCollection.Count _
= xlbookbz.ActiveChart.SeriesCollection.Count Then '学生与样卷图表中数据源系列是否相等 f = True
For i = 1 To xlbooksj.ActiveChart.SeriesCollection.Count '逐个系列进行比较
datasj = xlbooksj.ActiveChart.SeriesCollection(i).Formula
datasj = Mid(datasj,9)
databz = xlbookbz.ActiveChart.SeriesCollection(i).Formula
databz = Mid(databz,9)
If datasj databz Then
f = False
Exit For
End If
Next i
If f Then cj = cj + fz '计算得分
End If
5 总结
通过实践,用本文思路编写的Excel操作题自动阅卷系统,能快速准确的自动评分,对计算机教学起到事半功倍的效果。


参考文献
[1] 李丁.计算机考试系统中自动评分策略的研究与实现[ J].计算机与现代化, 2002,( 9): 56.
[2] 张全和.计算机基础考试系统的分析与设计[D].重庆:重庆大学,2005.。

相关主题