用VB程序实现对学生Excel作业的批量评分_第1页
用VB程序实现对学生Excel作业的批量评分_第2页
用VB程序实现对学生Excel作业的批量评分_第3页
用VB程序实现对学生Excel作业的批量评分_第4页
用VB程序实现对学生Excel作业的批量评分_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用VB程序实现对学生Excel作业的批量评分在Excel教学过程中,我们要在多媒体电子教室收取学生作业。而在课堂上,对学生的课堂作业要进行及时批改评分是很费时间的。这样就不能客观公正的对学生及时进行评价,对教学中存在的问题不能及时发现。怎样才能对学生的作业及时批改评分,笔者查阅了有关vb程序自动化控制Excel的有关资料,编写了一个小系统,可以对学生的作业进行评分。1系统实现的关键技术1.1自动化控制自动化使应用程序能够对另一个应用程序中实现的对象进行操作,或者将对象公开以便可以对其进行操作。自动化服务器是向其他应用程序(称为自动化客户端)公开可编程对象(称为自动化对象)的应用程序。自动化服务

2、器有时称为自动化组件。许多Microsoft的应用程序是自动化服务器,包括Access、Word>Excel、PowerPoint、FrontPage等。这意味着您可以再使用这些特色丰富的应用程序作为您的应用程序的服务器。公开自动化对象使客户端能够直接访问通过服务器可用的对象和功能,从而自动完成某些过程。当应用程序提供的功能对其他应用程序有用时,这样公开对象是有益处的。要让vb编写的程序作为客户端,Excel程序作为应用程序服务器,让vb程序能自动化控制Excel程序,首先应在vb程序中引用MicrosoftExcel类型库。方法是:从“工程”菜单中选择“引用”命令;选择Microsof

3、tExcel11.0ObjectLibraryoffice2003不同的版本,库的版本也不一样);选择“确定”。然后,在vb程序中创建Excel向用户公开的对象,在通用对象的声明过程中定义Excel对象:Excel.ApplicationExcel.WorkBook、Excel.Worksheet、Range>chart等。Excel.Application对象相当Excel应用程序,Excel.WorkBook对象对应于用户工作簿,Excel.Worksheet对象对应于工作表,range对象是选取的区域,chart对象对应于图表。这样,vb程序就可以通过Excel服务器实现对对象的自

4、动化控制,完成对对象的属性的提取或判别。这也是实现对学主作业评分的最关键的技术。例如:将al:el单元格区域字体设置为楷体以下为宏代码Range(A1:E1).SelectWithSelection.Font.Name=楷体_GB2312.FontStyle=常规.Size=14.Strikethrough=False.Superscript=False.Subscript=False.OutlineFont=False.Shadow=False.Underline=xlUnderlineStyleNone.Colorindex=xlAutomaticEndWith提取转换后的评分代码是Ran

5、ge(A1:E1).SelectIfSelection.Font.Name二楷体GB2312"thenzf=zf+lelsess=ss+”字体设置不正确”如果正确设置了,那么总分增加一定的值,否则,将出错原因记录在字符串SS中1.3公共对话框的应用要批量选择学生作业工作簿,需要设计批量选取工作簿文件的对话框,这会增加很大的工作量。Visualbasic提供了通用对话框(commondialogbox)控件,使得设计对话框十分方应将其添加到工具箱中。具体方法是在“工程”菜单中选“部件”命令,打开“部件对话框。在“部件”对话框的“控件”选项卡中,从列出的控件中找到microsoftcom

6、mondialogcontrol便。在默认情况下,通用对话框控件不在工具箱中。在使用之前,6.0,使在前面复选框中打下“,再单击“应用”按钮,通用对话框就出现在在工具箱中,就可以使用该控件了。2系统的实现2.1 系统的功能模块系统有四个模块,分别是:选择评分工作簿:选取要批量评分的学生工作簿;评分:批量对学生的Excel作业进行评分,并把学生的姓名、总分和出错原因写入“评分.xls”工作簿出:退出系统。中;查看结果:打开“评分.Xis”工作簿,查看评分的结果;退2.2 调用通用对话框批量选取学生作业工作簿的实现通用对话框可以提供6种不同形式的对话框,本系统使用的是打开对话框。为了批量选取学生作

7、业工作簿,将对话框的fiags设置为512,运行时允许用户选取多个文件,所选的工作簿的路径和文件名在CommonDiaiogl.FiieName中,文件名之间以空格分隔。本系统将提取出路径和工作簿的文件名保存在数组myfiiename中。为了便于记录成绩,学生作业工作簿用自己的姓名作为文件名。PrivateSubCommand3_Ciick()CommonDiaiogl.DiaiogTitie=打开文件CommonDiaiogl.ShowOpenJCommonDiaiogl.Fiiter=所有文件(*.*)|*.*|工作簿(*.Xis)*.XisCommonDiaiogl.Flags=512&

8、#39;允许多选myfiienamel=CommonDiaiogl.FiieNameFori=1ToLen(myfi1ename1)IfMid$(myfilenamel,i,1)Thenmyfilename(j)myfilename(j)+Mid$(myfilenamel,i,1)Elsej=j+1Nexti将文件名置于数组中多文件时取出各个文件名和路径置于数组中,第一单元是路径;单文件时取出文件及路径名在数组的第一单元中EndSub2.3 对学生作业进行批量评分并记录的实现首先创建一个Excel.Application对象,并用open方法打开“评分.xls”工作簿对象,并激活工作表“she

9、etl”对象,并选择“sheetl”的所有单元格,清除单元格的内容,并在第一行的三个单元格中输入“姓名”、“总分”、“出错原因”。因为对单个学生作业和对多个学生作业进行评分时,提取文件名的方法不同,所以分成两部分,一部分是对多个学生作业,进行评分,另一部分是对一个学生进行评分。因为两部分只有提取文件名有一些不同,所以本文只介绍对多个学生作业进行评分的部分。创建一个循环,每循环一次打开一个学生作业工作簿对象,并激活工作表对象(Worksheet),选择其中的对象rang>cells>chart等对象,把对象的属性或状态和题目所要求的对象的属性或状态进行比对,主要是用判断语句,如果正确

10、,则总分加一定分值。如果出错,则将出错原因存入字符串SS中。最后,激活“评分.Xis”工作簿对象的“sheetl”对象,将结果写入激活“评分.xls”工作簿对象的“sheetl”对象的单元格中。循环结束,则将完成对所有学生的批量评分,并将结果记录在“评分xls”中以下是程序代码:PubiicjAsIntegerPubiicmyfiienamelAsStringPubiicmyfiiename(100)AsString一个班最多100个学生)DimaaAsExcei.ApplicationDimbbAsExcei.WorkbookDimbblAsExcei.WorkbookDimccAsExce

11、i.WorksheetDimcclAsExcei.WorksheetDimssAsStringPrivateSubCommandl_Ciick()Ifj>=2ThenSetaa=CreateObject(Z/Excei.Appiication/Z)aa.Visibie=True评分.XLS)Setccl=bbl.Worksheets(z/sheetlz/)ccl.Activateccl.Cells.SelectSelection.Clearccl. Cells (1,1)姓名总分出错原因ccl.Cells(1,2)ccl.Cells(1,3)Form=2Tojmyfilenamel=my

12、filename(1)&myfilename(m)时取出各个文件名置于数组中,第一单元是路径,其它各单元多文件是打开要评分文件名Setbb=aa.Workbooks.Open(myfilenamel)的学生作业文档Setcc=bb.Worksheets(z,sheetl,z)zf=0记录总分 SS ='记录出错原因Forml.ShowRange(bl5).SelectIfSelection.Formula=SUM(B3:B14)Thenzf=zf+1Elsess=ss+"1计算不正确EndIfRange(f3).SelectIfSelection.Formula=(B

13、3+C3+D3+E3)/3Thenzf=zf+1Elsess=ss+2计算不正确EndIfIfSelection.NumberFormat=$礼#0.000;$-#,#0.000Thenzf=zf+1Elsess=ss+数据格式不正确EndIfRange(A1:el).SelectIfSelection.HorizontalAlignment=xlCenterAcrossSelectionThenzf=zf+1Elsess=ss+"设置了跨列居中不正确"EndIfIfSelection.Font.Name=楷体GB2312Thenzf=zf+1Elsess=ss+设置了楷体不正确EndIfIfSelection.Font.Size=18Thenzf=zf+1Elsess=ss+设置字号不正确EndIfIfSelection.Font.Colorindex=5Thenzf=zf+1Elsess=ss+”设置了字符颜色错误EndIfccl.Activate11=Len(myfi1ename(1)12=Len(myfi1ename1)ccl.Cells(m,1)=Mid$(myfilenamel,11+1,12-11-4)'学生作业用学生自己的名字命名,取得学生姓名ccl.Cells(m,2)=zfc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论