Excel VBA考试试题设计与评分方法研究
作者:贾志先
来源:《智能计算机与应用》2015年第01期
作者:贾志先
来源:《智能计算机与应用》2015年第01期
摘 要:在Excel VBA课程考试软件开发中,如何从Excel文件中获取考生操作的窗体对象和宏代码,是操作题评分中的一个关键性问题。到目前为止,有关Excel VBA课程的考试软件开发和评分方法研究方面的文献报道尚不多见。利用VBE及其子对象的属性和方法,可以测试Excel VBA工程中的窗体和控件对象的属性和事件代码,以及模块中的宏代码。给出了基本操作题、程序改错题和程序填空题这三种题型的试题和答案设计的示例。考试结果表明,使用VBE对象来获取考生操作的窗体对象和宏代码,很好地解决了Excel VBA考试系统中操作题的计算机评分问题。
vb语言代码大全网页 关键词: VBA; 操作题;试题设计; 评分方法
中图分类号:TP311.1 文献标识码:A 文章编号:2095-2163(2015)01-
Abstract: In the software development process of Excel VBA examination, there is a
key problem how to obtain the form object and macro code from the Excel file which examinee operates in the examination. So far, it is rarely for the literature on the development of software and the method of scoring in the examination of Excel VBA courses. In Excel VBA project, the properties and event code of form and controls, and the macro code in module can be tested by using the properties and methods of VBE object and its sub objects. In this article, three design examples of examination questions and answers, namely, basic operation question, modify the program and fill in the blanks in the program are given. The results show that it is a good solution to the computer scoring problem of exam questions in the Excel VBA by using the VBE object to obtain form object and macro code.
Key Words: VBA; Operation Question; Design of Examination Question; Method of Scoring
0 引 言
VBA (Visual Basic for Applications)是基于Visual Basic发展而来的一种宏语言[1-4]。
VBA集成在Office组件之中,是Microsoft Visual Basic的应用程序版本。VBA的出现,使Office形成了一个独立的编程环境。应用VBA执行OLE可以扩展Windows的应用软件功能,特别是Microsoft Office软件。在许多应用程序中,都嵌入了VBA作为开发工具。运用和掌握VBA不仅可以实现高效办公,并且可以循序渐进地掌握一门编程语言,为以后学习计算机语言奠定坚实基础[5-7]。近年来,在国内一些高校中,开设了VBA的计算机课程。到目前为止,有关VBA课程的考试软件开发和评分方法研究方面的文献报道尚不多见。
在VBA课程考试软件开发中,如何从Excel文件中获取考生操作的窗体对象和宏代码,是操作题评分中的一个关键性问题。在已有的考试软件基础上[8],经过深入地研究,开发了一个Excel VBA的考试系统。采用Microsoft Visual Studio 2010作为开发平台,应用VBE对象来获取考生操作的窗体对象和宏代码,从而在考试系统中实现了VBA客观题和操作题的计算机评分。
1 VBE对象
在Excel中,VBE(Visual Basic Editor)是VBA的编辑窗口,所有的VBA操作都可在VBE中完成。VBE及其子对象的结构,如图1所示[4]。
在图1中,椭圆框表示对象,矩形框表示集合。
Excel VBA考试操作题的评分,主要用到以下VBE及子对象的方法和属性:
(1)VBE对象:VBE为根对象,具体包含了所有其它可在Visual Basic for Applications中表示的对象和集合。可用VBProjects集合访问VBA工程的集合。
(2)VBProject对象:VBProject对象表示一个工程。可用VBProject对象设置工程的属性、访问VBComponents集合以及References集合。
(3)VBComponent对象:VBComponent对象表示一个包含在工程中的部件,例如类模块或标准模块。使用VBComponent对象,可以访问与部件关联的代码或改变部件的属性设置。使用VBComponent对象的Type属性,可以确定出所引用的部件类型;而使用VBComponent对象的Collection属性,则可以确定出所引用的部件在哪个集合中。VBComponent对象的Type属性设置,如表1所示。
(4)CodeModule对象:CodeModule是代码模块对象,在诸如窗体、类或文档等部件之后表示程序代码。应用CodeModule对象相关联的属性和方法,能够操作并返回有关逐行
代码文本的信息。CodeModule对象的主要属性有:
① CountOfLines属性,返回代码模块中的总行数;
② Lines属性,返回代码模块中指定的代码块。其格式为:.Lines(startline, count);
③ CountOfDeclarationLines属性,返回代码模块中公共声明部分的行数;
④ ProcBodyLine属性,返回模块中一个过程的起始行数。其格式为:.ProcBodyLine(procname, vbext_pk_Proc);
⑤ ProcCountLines属性,返回模块中一个过程的行数。其格式为:. ProcCountLines(procname, vbext_pk_Proc)。
(5)Property对象:Property对象,用来描述一个对象的属性。可用Property对象的Value属性来返回或设置一个部件的属性值。
利用VBE及其子对象的属性和方法,可以测试Excel VBA工程中的窗体属性,窗体中的
控件对象的过程代码以及模块中的宏代码。因此,可以利用VBE及子对象的方法和属性实现对Excel VBA操作题的评分。
2 VBA 考试试题设计
在Excel VBA考试系统中,考试试题包括理论题和操作题。理论题为客观题,评分比较容易实现。操作题的题型有:基本操作题、程序改错题、程序填空题和编程题。与大多数考试软件一样,编程题的评分采用黑盒测试法,根据程序的运行结果,给出相应的分数。基本操作题、程序改错题和程序填空题,需要利用VBE及其子对象的属性和方法获取考生操作的窗体对象和宏代码进行评分。
为了实现计算机的自动评分,需要对试题进行标准化。下面,给出基本操作题、程序改错题和程序填空题这三种题型的试题和答案的设计示例。
2.1基本操作题
设计基本操作题的主要目的是为了测试考生对窗体操作和简单VBA语句的掌握程度。利用VBE及其子对象的属性和方法,可以检测Excel VBA工程中窗体和控件对象的属性和事件
代码,并通过对属性和事件代码的检测,实现对考生的控件掌握程度的测试。
试题1:
打开考试文件夹下的工作簿“Test1.xlsm”,并在该工作簿的窗体--UserForm1中完成以下操作:
(1)将窗体--UserForm1的标题改为“信息查询”;
(2)将窗体--UserForm1的"Height"属性设置成200,"Width"属性设置成270;
(3)在窗体--UserForm1中添加一个命令按钮“CommandButton1”,并将CommandButton1的标题设置为"测试",字体设置为“楷体”;
(4)在CommandButton1的Click过程中,输入以下代码:
MsgBox "这是我建立的命令按钮", vbInformation, "VBA考试"
注意:完成以上操作后,请保存文件;
不能删除窗体--UserForm1或更改窗体--UserForm1的对象名。
在以上答案中,CheckType=1,表示检测窗体属性;CheckType=2,表示检测窗体中控件的属性;CheckType=3,表示检测控件的事件代码。SimilarAnswers表示相同答案的个数。ScorePoint表示给分点的个数。Score表示该测试点的分值。
2.2程序改错题
设计程序改错题的主要目的是为了测试考生对VBA语句和语法的掌握程度。在程序改错题中,一般可设置2~4处错误。为了降低考试的难度,在出错的语句处给出相应的标示。通常情况下,改错题的答案不是唯一的,可能有多个答案,在答案中应尽可能给出所有可能的答案。
试题2:
打开考试文件夹下的工作簿“Test2.xlsm”,在该工作簿的模块--模块1中有一段程序代码。功能为:检测档案归还是否逾期。若借阅时间+期限>=归还时间,则为按时归还,否则为逾期。其中有三个错误行。
2.3程序填空题
与程序改错题一样,设计程序填空题的主要目的是为了测试考生对VBA语句和语法的掌握程度。在程序填空题中,一般可设置2~4个空,为了降低考试的难度,在有空的语句处给出相应的标示。通常情况下,程序填空题的答案不是唯一的,可能有多个答案,在答案中应尽可能给出所有可能的答案。
试题3:
打开考试文件夹下的工作簿“Test3.xlsm”,在该工作簿中有一个窗体-- UserForm1,其功能是查询并显示Sheet1中相应产品的名称及库存量。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论