高中信息技术学科的操作内容很多,像frontpage、EXCEL、photoshop等,如果这些作业一个个打开进行批改,麻烦!既然是电子文档作业,如果能充分利用计算机自动化处理事务的优势,使用机器进行自动阅卷,这不但能减轻教师批改作业的负担,更重要的是让学生自己也能批改作业,及时知道问题所在,从而培养学生的自学能力,应该说这也是非常重要的。那么,使用VB语言能实现这些操作题的自动阅卷吗?经过资料查阅,这些软件都提供针对VB的对象库,只要在VB中引用这些对象库,就能方便的读取文档中的所有对象,也就能知道学生操作结果是否正确了。接下来我就如何利用VB实现excel作业的机器阅卷作详细阐述。 例如,下图是一张EXCEL工作表Sheet1。 要求学生对表格进行如下操作: 用函数计算出员工的应发工资,并保留两位小数。 VB程序批阅的过程如下: 1、在工程中引用Microsoft Excel对象库。   如果需要用到一些EXCEL对象库中定义的名称常量,如图表类型名称常量、线型名称常量等,必须引用对象库,否则可以忽略这一步。引用的方法是从“工程”菜单中选择“引用”命令,选中Microsoft Excel 9.0 Object Library(EXCEL2000),然后点击“确定”。   2、定义EXCEL对象变量。 Dim xlApp As Excel.Application ‘定义excel应用程序对象变量 Dim xlBook As Excel.WorkBook ‘定义工作簿对象变量 Dim xlSheet As Excel.Worksheet ‘定义工作表对象变量 3、创建Excel进程,并打开Excel文件 If Dir("EXCEL文档名") = "" Then Msgbox " excel文档不存在" Exit Sub End If Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象 Set xlBook = xlApp.Workbooks.Open("EXCEL文档名") '打开EXCEL文档 xlApp.Visible = False '隐藏EXCEL窗口 Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表 4、批改作业 Dim errormessge as string ‘记录每一小题的错误信息 Dim score as integer’记录每一小题的得分情况 Errormessage=”” Score=5 For i=2 to 6 If UCase$(xlsheet.Cells(i, 6).Formula)<>”=SUM(C”&i&”:E”&I&”)” then Errormessage=”函数使用有误。” Score=score-3 Exit for End if Next For i=2 to 6 If xlsheet.Cells(i, 6).NumberFormatLocal <> "0.00" and _ xlsheet.Cells(i, 6).NumberFormatLocal <> "0.00_" and _ xlsheet.Cells(i, 6).NumberFormatLocal <> "0.00_);(0.00)" then Errormessage= Errormessage & ”数值没有保留两位小数。” Score=score-2 Next 5、显示批改结果 Msgbox(score & Errormessage) 6、结束Excel进程,并关闭Excel相关对象 xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlapp = Nothing 程序中有几点需要说明的是: 1、最好设置EXCEL应用程序对象为隐藏,否则每次打开学生的EXCEL文件均会显示出来,影响批改速度;而且用户能够关闭EXCEL,从而使VB程序产生自动化错误。 2、某些属性值可能会有很多形式,如果考虑不全,可能批改的结果就会有错误。如单元格的数字格式保留两位小数,在EXCEL内部可以表示为:“0.00”、“0.00_”、“0.00_);(0.00)”等形式,学生如果选择了其中的任一类型,都应该是正确的,所以在设计程序时应该周密一些,尽量多测试测试。 3、如果没有引用EXCEL对象库,那么定义EXCEL对象变量时应写成如下形式: Dim xlApp As Object Dim xlbook As Object Dim xlsheet As Object 否则就会出现“编译错误:用户定义类型未定义”。当然,如果引用了EXCEL对象库,则两种定义形式均可。 以上是批阅EXCEL作业的一个简单例子,实现其实并不复杂,只要知道各个EXCEL属性的名称就可以了。EXCEL对象属性很多,记忆是很困难的,可以通过以下方法获取所需属性名称。 1、在EXCEL中录制宏,查看宏程序,大多数属性名称都能找得到,这是最方便的一种方法。但也有一些特殊的属性与对象库中的名称是不一样的,当然就不能用了。 2、打开VB中的“对象浏览器”,并在对象库中选择“EXCEL”,就能找出所有属性名称了。 3、利用VB软件的代码提示功能,也能找到相当一部分的属性名。 4、通过调试中的“监视”功能获取属性名。方法是在程序中设置断点,并在“监视”窗口中添加EXCEL对象变量,最好是比较顶级的excel对象变量,如上述程序中的xlSheet、xlBook、xlSheet,然后运行程序,当执行至断点时,便能看到该excel文档中的所有对象及其属性值了。实际高中教学中几个常用的属性主要有这么一些: (1)隐藏或显示excel进程窗口:xlApp.Visible (2)工作表的名称:xlbook.worksheets(1).name (3)单元格的值:xlSheet.Cells(1,1).Value; (4)单元格中的公式:xlsheet.Cells(1,1,).Formula (5)单元格的数字格式:xlsheet.Cells(1,1).NumberFormatLocal (6)列的宽度(单位:字符个数):xlsheet.Columns(列数值).ColumnsWidth (7)行的高度(单位:磅):xlsheet.Rows(行数值).RowHeight (8)边框线宽度:xlsheet.Range(“A1:H10”).Borders(2).Weight (9)字体名称、颜色、加粗、下划线等属性,分别为: xlsheet.Range(“A1:H10”).Font.Name xlsheet.Range(“A1:H10”).Font.Color xlsheet.Range(“A1:H10”).Font.Bold xlsheet.Range(“A1:H10”).Font.UnderLine、 (10)是否启用了自动筛选:xlSheet. AutoFilterMode (11)筛选的条件是什么:xlSheet.AutoFilter.Filters(1).Criteria1 (12)图表的类型:xlSheet.ChartObjects(1).Chart.ChartType (13)图表的标题:xlSheet.ChartObjects(1).Chart.ChartTitle.Text (14)图表的数据源:xlSheet .ChartObjects(1).Chart.SeriesCollection当然,在实际软件设计中,最好把批阅“字体”、“单元格格式”、“图表”等所有的功能都定义为函数,以简化代码,也便于日后改进。