郭 斌
高中《信息技术》教学当中编制专门用于操作题目评分的软件十分必要。这样可以对学生所做的操作题目进行电脑打分。下面以Excel操作题目为例,介绍评分软件的制作方法。
一、操作题目要求
在文件Excel01的Sheet1中完成如下操作:
(1)A1:E1内单元格跨列居中,字体设置为黑体、18磅、蓝色。
(2)按公式:学期成绩=期中成绩*30%+期末成绩*70%,计算学期成绩。
(3)表格数据区域单元格外边框红色双线,内边框蓝色双线,水平、垂直居中,底纹为黄色。
做Excel操作题目,实际上是对Excel文件的某些内部属性值进行设置,如字体、颜色、对齐方式等。如果能够通过某种方法获取这些属性的变化情况或变化值,再借助VB编程来做出判断就可以为Excel操作题目进行评分了。
二、夯实宏录制策略
打开Excel做题文件,单击“工具”菜单→宏→录制宏→确定,开始按照题目要求进行操作。操作完毕后保存文件,停止宏录制。再单击“工具”菜单→宏→Visual Basic编译器,展开模块,双击模块项即可得到宏录制代码。
三、VB编程完成评分
1.引用组件,创建Excel应用对象
打开VB程序同时引用组件:Microsoft Excel 9.0 Object Library、Microsoft ActiveX Data Objects 2.0 Library、Microsoft Office 9.0 Object Library。
用以下语句创建应用:
Set ep=CreateObject("Excel.App lication")'创建一个Excel应用对象。
Set ep=GetObject(App.Path+" EXCEL01.XLS")'ep返回指定Excel文件,即ep就是文件EXCEL01.XLS。
2.水平对齐方式的判断
用ep.Worksheets("sheet1").Range("A1:E1").HorizontalAlignment来表示A1至E1范围的水平对齐方式值,如果值与xlCenter Across Selection相等就给分,否则不给分,再用一个变量来累积分数,一个变量来记录每一步的评分显示内容。语句如下:
With ep.Worksheets("sheet1")
If .Range("A1:E1").HorizontalAlignment = xlCenterAcrossSelection Then
a = a + "1、跨列居中得分:" + "1分" + Chr(13)'a表示评分显示内容
f = f + 1'f表示分数
Else
a = a + "1、跨列居中得分:" + "0分" + Chr(13)
End If
End With
3.字体、字号和颜色设置的判断
得出对齐方式的判断方法以后,字体、字号和颜色设置的判断就不难得出:
Range("A1:E1").Font.Name = "黑体"
Range("A1:E1").Font.Size = 18
Range("A1:E1").Font.ColorIndex = 5
4.按照公式计算的判断
宏录制代码中出现了“ActiveCell”关键词,通过“对象浏览器”查询得知“ActiveCell”返回一个Range对象。该对象代表指定窗口的活动单元格, “ActiveCell”就指 “Range("E3")”。又因每个单元格所用公式是一致的,逐一判断公式是否正确就可以了。
If(.Range("E3").FormulaR1C1="=RC[-2]*30%+RC[-1]*70%"and.Range("E4").FormulaR1_C1_ = "=RC[-2]*30%+RC[-1]*70%" and …) Then
5.表格边框设置及底纹颜色的判断
表格边框采用的是左右上下、中间垂直、中间水平分别判断的方法。整个表格数据的范围是A2至E9,所以“Selection”指的是“Range("A2:E9")”。“Range("A2:E9").Borders(xlEdgeLeft).LineStyle=xlDouble'”指的是A2至E9范围左边框的线型是双线型;“Range("A2:E9").Borders(xlEdgeLeft).ColorIndex=3'”指的是A2至E9范围左边框的颜色是红色。其他位置边框设置的判断采用同样的办法来进行。对齐方式的判断也是如此。底纹颜色的判断也非常容易得到:
Range("A2:E9").Interior.ColorIndex = 6
6.完成其余部分的编程
把以上语句综合起来,添加到一个按钮的“单击事件”中,再加上如下代码就可以对整道题目进行评分,并显示出评分结果了。
MsgBox a + Chr(13) + "最后得分:" + CStr(f) + "分", , "自动评分"
当然,还需要一个“打开本题”按钮来打开Excel文件,代码如下:
Dim oe As Object
Set oe = CreateObject("Excel.Application")
oe.Visible = True'Excel应用可见
oe.Workbooks.Open FileName:=App.Path + "EXCEL01.XLS"'打开要操作的文件
Excel自动评分系统的效果图如下:
总体来说,VB与宏录制相结合制作Excel操作题目评分软件的核心思想是:利用宏录制。在宏录制代码中得出正确的属性变化情况或变化值,再用VB编程获取做题文件相应的属性变化情况或变化值并与正确值进行比较,得出评分结果。对于Excel题目其他操作项目的评分也是如此,可以根据宏录制代码进行分析处理,自由发挥。
除了Excel操作题目可以编写评分程序外,其他的软件如Word、PowerPoint操作题目都可以用同样的办法来编写评分软件。只是在Word评分软件进行宏录制的时候,不能用鼠标操作而只能用键盘操作。
(作者单位:河北丰润车轴山中学)