基于VBA宏的Excel操作题自动判卷的VB编程策略
- 格式:pdf
- 大小:202.83 KB
- 文档页数:2
利用ExcelVBA技术进行多项选择题的自动评分作者:王读祥张军来源:《沿海企业与科技》2008年第04期[摘要]VBA的主要任务是编写代码、操作Office对象、完成特定的任务。
利用VBA技术可以快速在Excel制作出计算机自动判卷系统。
文章对多项选择题的自动判分功能进行探讨,并设计出相应的程序。
此功能已在计算机课程结束考试中发挥了较好的效果。
[关键词] VBA;控件;自动判卷[作者简介]王读祥,安徽省蚌埠海军士官学校计算机教研室主任,讲师,安徽蚌埠,233012;张军,安徽省蚌埠海军士官学校教保科科长,讲师,安徽蚌埠,233012[中图分类号] TP317.3 [文献标识码] A [文章编号] 1007-7723(2008)04-0061-0002也许您是一位老师,正面对一堆还未批改的学生试卷而发愁。
以前您如果想解决这样的问题,可能需要学习很多的编程专业知识。
而现在您只要懂得Excel,就可以实现这些看起来很难的任务。
通常利用计算机自动判卷只能用于客观题,目前的电脑还没有足够的能力去解决主观题,而客观题通常包括判断题、单项选择题、多项选择题、填空题,其中最为复杂的是多项选择题的设计,本文着重讨论利用Excel VBA技术实现多项选择题的自动判分功能,其余几种题型读者可参照实施。
一、多项选择题界面设计多项选择题的设计是一个难点,由于它的答案具有多样性和不确定性,决定了多项选择题的界面应该具有选项的独立性和平等性的特点,选项之间不能相互干扰,因此可采用复选框作为选项控件(设计界面见图1)二、多项选择题输入方法为了方便电脑识别答案,将多项选择题答题卡放在“答题卡”工作表Worksheets(2)中(见图2),将标准答案放在“标准答案”工作表中Worksheets(3)(见图3)。
复选框类似于开关按钮,当它的常用属性Value的值为-1时,表示该项选中,则将该项录入到“答题卡”工作表中;当Value为0时,表示该项未被选中,就不录入。
基于VBA的Excel文档自动评阅技术研究李爱玲;宋志刚【摘要】The Visual Basic for Applications is introduced. Based on practice, it provides a new scheme of auto-judge for Excel operation, gives the storage structure of Excel operation, analyzes the main algorithm in this scheme in detail. The VBA technique is introduced to implement the scheme briefly in the end.%首先介绍了Excel VBA技术.在实践的基础上,提出了一个Excel文档操作题的自动评阅方案.给出了方案中Excel操作题的存储结构.分析了阅卷方案的主要算法.最后,简要阐述了实现Excel文档自动阅卷的主要技术的实现.【期刊名称】《科学技术与工程》【年(卷),期】2011(011)034【总页数】5页(P8504-8508)【关键词】Excel文档;自动阅卷;形式语言;VBA;VB【作者】李爱玲;宋志刚【作者单位】装备指挥技术学院,北京102249;装备指挥技术学院,北京102249【正文语种】中文【中图分类】TP311.54Excel是计算机基础教学中的重要内容,其考核方式一般采用考试系统进行上机操作的形式。
利用VBA技术对Excel文档实现自动评阅是目前较为流行的一种方法。
VBA(Visual Basic for Applications)是单一通用的应用程序脚本语言和环境,包含在Microsoft Office和其他Microsoft应用程序中,同时也允许其它软件使用,因而VBA被广泛应用在其他产品中[1]。
VBA定义了一组Microsoft Office对象模型,它将Microsoft Office中的每一个应用程序都看成一个对象。
使用VBA实现Excel自动化操作的方法与技巧在当前的信息时代,Excel已经成为了办公室中最常用的电子表格软件之一。
然而,使用Excel进行大量数据处理时,可能会遇到繁琐而重复的工作,这就需要使用VBA(Visual Basic for Applications)来实现自动化操作。
本文将介绍一些使用VBA实现Excel自动化操作的方法与技巧。
一、了解VBAVBA是一种编程语言,可以通过使用Excel的宏功能来访问并操作Excel对象模型。
通过编写VBA代码,您可以自定义Excel 的功能并实现自动化操作。
在Excel中,可以通过按下ALT+F11键来打开VBA编辑器,其中可以编写和编辑VBA代码。
二、基本的VBA语法在编写VBA代码之前,我们先来了解一些基本的VBA语法。
下面是一些常用的VBA语法示例:1. 定义变量:Dim variableName As dataType例如:Dim number As Integer2. 数据类型:Integer : 整数Long : 长整数Double : 双精度浮点数String : 字符串Boolean : 布尔值Object : 对象Variant : 变体(可以包含任何类型的数据)3. 循环结构:For 循环Do While 循环Do Until 循环4. 条件结构:If...Then...Else 语句Select Case 语句5. 控制结构:Exit Sub : 终止子程序Exit For : 终止For循环Exit Do : 终止Do循环三、1. 自动运行宏:在Excel中,可以通过设置按钮或自动运行来触发宏的执行。
通过在工具栏上插入按钮来实现手动触发,或者使用Workbook_Open等事件宏来实现自动触发。
2. 定义函数:VBA可以定义自己的函数,并将其应用在Excel表格中。
例如,你可以编写一个用于计算平均值的函数,然后在Excel中使用`=average()`函数调用你自己编写的函数。
ExcelVBA编程与宏编辑器如何利用宏编辑器进行Excel的自动化操作和管理Microsoft Excel是一个功能强大的电子表格软件,广泛应用于数据分析、报表制作和业务管理等领域。
通过Excel的宏编辑器,我们可以利用VBA(Visual Basic for Applications)编程语言来实现Excel的自动化操作和管理,提高工作效率。
本文将介绍ExcelVBA编程的基本知识以及如何运用宏编辑器进行Excel的自动化操作和管理。
一、ExcelVBA编程基础知识ExcelVBA是一种在Microsoft Office套件中的编程语言,它结合了Visual Basic编程语言和Excel的功能。
通过使用VBA,我们可以将Excel作为一个开发工具,编写自动化脚本、自定义函数和用户界面等。
下面我们将介绍一些ExcelVBA编程的基础知识。
1. VBA编辑器的打开与关闭在Excel中,可以通过点击“开发工具”选项卡下的“Visual Basic”按钮来打开VBA编辑器。
在VBA编辑器中,我们可以编写和编辑VBA代码。
要关闭VBA编辑器,只需点击菜单栏中的“文件”选项,然后选择“关闭和返回到Microsoft Excel”。
2. VBA代码的编写与执行在VBA编辑器中,我们可以编写各种类型的VBA代码,包括子过程(Sub)、函数(Function)和事件处理程序(Event Handler)。
编写完代码后,可以通过按下“F5”键或点击菜单栏中的运行按钮来执行代码。
3. 对象、属性和方法在ExcelVBA编程中,我们操作的主要是Excel对象模型中的对象、属性和方法。
对象是Excel中的各种元素,如工作簿、工作表和单元格。
属性是对象的特征和状态,而方法是对象能够执行的操作。
通过使用对象、属性和方法,我们可以对Excel进行各种操作和管理。
二、利用宏编辑器进行Excel的自动化操作和管理1. 录制宏Excel的宏编辑器提供了录制宏的功能,可以将我们的操作过程转换为VBA代码。
基于VBA的简答题阅卷系统的设计与实现摘要在各类中专、大专、本科院校,熟练使用Office软件已是学生计算机技能水平的基本要求。
因此对Office技能水平进行考核和评价变得尤为重要。
本文主要从系统的整体设计、程序实现、容错处理和安全性方面来研究基于VBA 的Excel简答题自动阅卷系统的设计与实现。
关键词阅卷;VBA;Excel;简答题传统考试要求教师出多套试卷、印刷试卷、安排考试、监考、收集试卷、试卷评分和试卷分析,从教师出题到考生考试,途经各个环节,过程复杂,已经越来越不适应现代教学的要求。
本文就Excel简答题自动阅卷进行系统设计。
该系统的最大特点是直接利用Office平台,用其内嵌的编程语言VBA,不用外部数据库,因为我们众所周知的Excel就是一种功能强大的数据存储工具,某种程度上可以充当数据库。
1 系统的整体设计本系统设计一个基于VBA的Excel简答题自动阅卷系统,即(Excel+VBA)的形式。
它是在一个已有的出题系统的基础上,设计一个阅卷系统。
当学生考试的时候,通过网络考试系统抽取自己的考试题号,根据题号到网站上去下载自己的考试题目。
学生下载到考试机上的是一个Excel工作簿,工作簿中包括试题工作表、标准答案工作表、判卷信息工作表。
自动阅卷的流程:从判卷信息表中读取试题类型号,根据试题类型号找到对应的判卷模块。
判卷模块的功能是:将试题表中结果所在区域和标准答案所在区域进行比较,统计错误数量,算出最后总分。
2 自动阅卷程序实现利用分句算法、分词算法、关键词抽取算法、相似度计算算法实现简答题的阅卷。
简答题的阅卷要找到学生答案中的关键词,根据关键词匹配,关键词的相似度,给出最终成绩。
2.1 简答题题型分析根据简答题答案特点和规律将简答题分成3类:简单答案型简答题,单句陈述型简答题,有序表述型简答题。
2.1.1简单答案型简答题所谓的简单答案型简答题就是指标准答案中有且只有一个关键字,这类题和单项填空题比较类似,所以针对这类题的阅卷,只需要判定关键字是否匹配即可。
利用ExcelVBA技术进行判断题的自动评分作者:王读祥余升张军来源:《电脑知识与技术·学术交流》2008年第22期摘要:VBA是微软Office办公软件中各套件内嵌的编程语言,它是“寄生在Office产品中的Visual Basic”,使计算机自动判卷已成为一种重要的考试方式之一。
文章对判断题的自动判分功能进行了研究,设计出了相应的程序,此功能已在计算机课程结束考试中发挥了较好的效果。
关键词:VBA;控件;自动判卷中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2008)22-604-02The Automatic Grade Point of Judgment Making Use of the Technique of Excel VBAWANG Du-xiang1, YU Sheng1, ZHANG Jun2(1.Teaching and Research Section of computer, Bengbu Navy school, Bengbu 233012, China ;2. Teaching and guarantee section, Bengbu Navy school, Bengbu 233012, China)Abstract: VBA is the programme language which is embedded in office software of Microsoft, It is " Visual Basic which live in the office product" and makes the automatic grade point to have becomea kind of important examination method. The article carried on the research to the automatic grade point function of judgment, designed correlation procedure. This function had already obtained better effect in the be over the examination about computer.Key words: VBA; control; the automatic judgement to examination paper目前,很多学校和认证机构采用了上机考试,电脑自动判卷的考试模式。
宏录制+VB编写Excel操作题目评分软件作者:郭斌来源:《中小学信息技术教育》2009年第02期高中《信息技术》教学当中编制专门用于操作题目评分的软件十分必要。
这样可以对学生所做的操作题目进行电脑打分。
下面以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。
使⽤VBA在EXCEL中实现给孩⼦⾃动出题孩⼦现在上学前班,放假时⽼师经常要求家长也出⼀些⼩的加减⼀类的运算题让孩⼦做,我就根据这个要求,做了个带宏的EXCEL表格⽂件,并加了两个按钮,来实现的给孩⼦的⾃动出题,⾃动计算,⾃动判断对错的⼩程序,发与⼤家共同分享。
具体界⾯如下,本⼈使⽤的⾦⼭的WPS表格,与EXCEL兼容,⽀持国产正版软件。
Dim shuliang '定义出题的数量Dim fangshi '定义出题的运算的⽅式,1代表+,2代表-,3代表×,4代表÷,5代表+-,6代表×÷,7代表全都有Dim xiaoshu '定义出题数值的最⼩值Dim dashu '定义出题数值的最⼤值Dim result(1000) '保存计算的结果Public Sub CommandButton1_Click() '此⽅法定义了点击⾃动出题按钮后就进⾏的操作Dim i, first, second, yunsuan, zColumns(1) = ""Cells(1, 1) = "第⼀个数"Columns(2) = ""Cells(1, 2) = "运算"Columns(3) = ""Cells(1, 3) = "第⼆个数"Columns(4) = ""Cells(1, 4) = "等于"Columns(5) = ""Cells(1, 5) = "输⼊结果"Columns(6) = ""Cells(1, 6) = "正确答案"Columns(7) = ""Cells(1, 7) = "对与错" '以上⼏⾏表⽰清除对就列的所有显⽰,并加上标题shuliang = [I1]If shuliang <= 1000 Thenfangshi = [I2] '读取相应的设置xiaoshu = [I3]dashu = [I4]For i = 1 To shuliang '⾃动出题Randomizefirst = Int(Rnd() * (dashu - xiaoshu) + xiaoshu)Cells(i + 1, 1) = first '⽣成第⼀个数,并填⼊对应的单元格If fangshi = 1 Thenyunsuan = "+"ElseIf fangshi = 2 Thenyunsuan = "-"ElseIf fangshi = 3 Thenyunsuan = "×"ElseIf fangshi = 4 Thenyunsuan = "÷"ElseIf fangshi = 5 ThenRandomizeyunsuan = IIf(Rnd() > 0.5, "+", "-")ElseIf fangshi = 6 ThenRandomizeyunsuan = IIf(Rnd() > 0.5, "÷", "×")ElseIf fangshi = 7 ThenRandomizez = Rnd()yunsuan = IIf(z < 0.25, "+", IIf(z < 0.5, "-", IIf(z < 0.75, "×", "÷")))End IfCells(i + 1, 2) = yunsuan '⽣成运算符并填⼊对就的单元格If yunsuan = "-" Then Randomizesecond = Int(Rnd() * (first - xiaoshu) + xiaoshu)ElseIf yusuan = "÷" ThenWhile second = 0Randomizesecond = Int(Rnd() * (dashu - xiaoshu) + xiaoshu)WendElseRandomizesecond = Int(Rnd() * (dashu - xiaoshu) + xiaoshu) '⽣成第⼆个数End IfCells(i + 1, 3) = secondCells(i + 1, 4) = "=" '填⼊对应的单⽆格If yunsuan = "+" Thenresult(i) = first + secondElseIf yunsuan = "-" Thenresult(i) = first - secondElseIf yunsuan = "×" Thenresult(i) = first * secondElseIf yunsuan = "÷" Thenresult(i) = first / second '计算运算结果,写⼊数组,以⽅便查看结果时调⽤End IfNextElseMsgBox "数量不能⼤于1000"End IfEnd SubPrivate Sub CommandButton2_Click() '根据计算的结果及填⼊的结果进⾏对⽐,来判断对和错Dim pass, i pass = InputBox("请输⼊密码", "密码框", "llt123")If pass = "llt123" ThenFor i = 1 To shuliangCells(i + 1, 6) = result(i)Cells(i + 1, 7) = IIf(Cells(i + 1, 5) = result(i), "√", "×")NextElseMsgBox "密码不对,不能查看结果,请找家长"End IfEnd SubPrivate Sub workbook_BeforeClose(Cancel As Boolean) '关闭⽂件前⾃动保存ActiveWorkbook.Save End SubPrivate Sub workbook_Open() '打开⽂件时⾃动出题,并给出提⽰Call mandButton1_Click MsgBox "请选择好⾃⼰的设置,点击⾃动出题即可"End Sub。