VBA在Word中的应用--自动生成试卷
- 格式:pdf
- 大小:169.32 KB
- 文档页数:2
基于Word VBA技术的自动化试卷编辑系统赵林平;赵莉【摘要】基于Word VBA技术的自动化试卷编辑系统是以Word软件为开发平台,运用其内嵌的VBA编程语言二次开发实现的应用软件,能使用户轻松完成试题、答案和试卷基本信息的格式化录入,并且自动生成标准化试题、答案、答题纸、命题审核表和批阅审核表等文档,有利于试卷的格式化.提高了教师编辑试卷的效率,具有良好的应用前景和较高的实用价值.【期刊名称】《南通纺织职业技术学院学报》【年(卷),期】2010(010)001【总页数】6页(P8-13)【关键词】试卷编辑系统;Word;VBA【作者】赵林平;赵莉【作者单位】南通大学法政与管理学院,南通,226019;南通中学,南通,226001;南通大学法政与管理学院,南通,226019;南通中学,南通,226001【正文语种】中文【中图分类】TP3910 引言目前,高校普遍使用Word应用软件来制作试卷,但因编辑过程中格式的设置过于灵活,难以实现试卷的标准化.为此,许多高校采取定制试卷样卷的形式来规范试卷的格式,要求教师出题后按照样卷的格式自行排版.为实现试卷的标准化,教师通常需要花费大量的时间来格式试卷.即使这样,格式后的试卷仍然达不到完全的标准化.因此,迫切需要选择一款既能适应广大教师的编辑习惯,又能对试卷进行自动格式与排版,并能自动生成标准化试卷和答案等文档的应用软件.针对以上情况,笔者开发了一款基于Word VBA技术的自动化试卷编辑系统.该系统既能减轻教师在制作试卷过程中的工作量,又能实现试卷的标准化.它面向大众、通用性强、操作方便,所有操作全部在Word环境中完成,符合使用者的习惯.1 系统分析1.1 系统开发平台的选择Word是微软公司Office集成办公软件中的重要组件之一,也是高校教师使用频率最高的应用软件之一.尤其在Word 2000引入VBA6.0之后,其功用明显增强,已成为目前功能最强、流行最广的字处理软件.运用其内嵌的VBA进行二次开发所得到的应用软件,既可以使繁琐重复的操作自动化,从而提高工作效率和应用水平,同时又不改变Word原有的界面风格、系统功能和操作方式.选用Word作为本系统的开发平台,教师不必经过特殊的培训就能熟练使用,降低了系统的使用门槛,提高了系统的可用性.VBA(Visual Basic for Applications)是一种新一代的标准宏语言,具有跨越多种Office应用软件并控制应用软件对象的能力,用于定制和扩展Office功能,是Office套件的一部分[1].通过VBA编程可实现Word本身所不具备的功能,其典型应用有:加速日常编辑和格式设置、组合多个命令、使对话框中的选项更易于访问、使一系列复杂的任务自动执行等等.1.2 系统开发的目标和解决的具体问题系统开发的目标是实现试卷格式的标准化及提高教师编制试卷的效率.解决的具体问题有:①系统要适应各学科试卷编辑的需求;②教师只要录入试题、答案和试卷的基本内容,试卷的格式由系统自动实现;③系统能根据试卷内容自动生成标准化的试题(试题册)、答案(含评分标准)、答题纸、命题审核表和批阅审核表等文档;④系统应具有良好的兼容性,既能根据需要通过命令生成试题模板,也能根据已有的试题内容通过命令直接生成模板(适用于复制来自试题库、普通试卷中试题的编辑);⑤ 系统应具备自动检测、操作提示、锁定错误等功能;⑥系统应具有良好的人机界面.2 系统设计为适应试卷管理规范与要求,系统应具备自动生成标准化试题、答案、答题纸、命题审核表和批阅审核表文档的基本功能.据此,笔者建立了内含VBA程序的“试题模板.doc”文件,使试卷基本信息、试题和答案及评分标准的录入和自动化功能得以实现,同时还建立了“试卷.doc”、“答案.doc”、“答题纸.doc”文件来定制各自文档的基本结构.“答题纸.doc”文件内也编制了VBA程序用于自身的自动化控制.“命题审核表”和“批阅审核表”文档则由系统直接生成.因此,该自动化试卷编辑系统主要由两部分组成:一是试题本身,由试题和答案(含评分标准)以及试卷基本信息等内容组成,是系统的基础和原材料.二是自动化试卷编辑系统软件,由“试题模板.doc”、“试题.doc”、“答案.doc”和“答题纸.doc”4 个文件组成,是系统的调度者、加工者.其中,“试题模板.doc”和“答题纸.doc”文件内含VBA程序,是软件系统的核心.该自动化试卷编辑系统操作流程(如图1所示).3 系统功能的实现[2~3]本系统主要功能的实现分为静态功能和动态功能.静态功能的实现较为简单.例如,“试题.doc”和“答案.doc”文档中,运用Word常规方法定制的文档基本结构,如纸张大小、分栏、页眉页脚等功能的实现.动态功能的实现一般通过VBA编程来实现.本系统动态功能的实现较多,限于篇幅,笔者将根据系统操作流程对系统中的启动项、用户窗体和工具菜单中相关动态功能的实现作简要介绍.图1 系统操作流程3.1 运行环境的设置与实现由于系统开发平台为Word应用软件,因此,计算机中必须装有Word 2000或者更高版本.另外还要允许Word使用“宏”,使Word“显示段落标记”并“显示虚框”.3.2 打开方式功能的设置与实现系统打开方式设置主要是指系统启动项相关功能的设置.一般通过编制VBA程序来实现.主要功能有:① 为最大限度地减少当前Word程序下打开文档的数量,给用户提供良好的操作环境,系统设计了两种打开模式:第一种是“试卷基本信息”录入模式(即:同时打开试题模板、试卷、答案、答题纸4个文件);第二种是“试题与答案”录入模式(即:只打开“试题模板”文件).② 为保证系统的正常运行,避免不可预知的错误发生,在系统启动的同时对Word运行环境作自动检测,提示用户按操作规程使用本系统.③ 如果用户选择“试卷基本信息”录入模式,在打开所有系统文件后,显示“试卷基本信息”主界面窗口.实现上述功能的VBA程序如下:Private Sub Document_Open()msg="请选择系统打开模式:"&Chr(13)&"1.选择“是”:进入“试卷基本信息”录入模式.同时打开“试题模板、试卷、答案、答题纸”文件."& Chr (13)&"2.选择“否”:进入“试题与答案”录入模式.同时只打开“试题模板”文件."'定义对话框信息Style=vbYesNo+vbQuestion+vbDefaultButton2'定义对话框按钮Title="提示"'定义对话框标题Response = MsgBox(msg,Style,Title)If Response=vbYes Then '用户按下“是”,则实现第一种打开模式If Application.Documents.Count>1 Then'检测当前应用程序下打开文档的数量MsgBox"某个Word文件已经被打开,为避免不可预知的错误发生,请关闭所有Word文档后重试!",vbCritical'定义对话框信息Documents("试题模板.doc").Close'关闭文件Exit SubEnd IfDocuments.Open FileName:="答题纸.doc"'打开文件Documents.Open FileName:="答案.doc"'打开文件Documents.Open FileName:="试卷.doc"'打开文件Windows("试题模板.doc").Activate'设置为当前活动文档UserForm1.Show'显示窗体(如图2所示)End IfEnd Sub图2 试卷基本信息录入窗体3.3 试卷基本信息的录入功能的设计与实现试卷基本信息的录入通过窗体来实现.主要功能:①用户采用手工或在组合框“下拉按钮”中选择输入的方法录入试卷基本信息并能保存和清除录入窗体的数据.②能自动根据“课程名称”文本框内录入的字符串信息对系统中的相关文档课程名称字符串信息进行格式设置,以适应卷面需要.③能将窗体中录入的数据添加到相关文档中的指定位置.实现方法:首先,建立“试卷基本信息”主界面窗体(见图2).其次,对窗体的相关对象编程以实现各自功能,限于篇幅,本文仅对上述功能2的VBA编程作简要介绍.“试卷基本信息”主界面窗体中,“课程名称”对应文本框(TextBox1)的VBA程序如下:Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)'文本框事件,光标离开便执行程序'Len是支持中文的字符统计函数.通过以下Lenx程序设计实现了中、英、数混合字符字节的精确统计,对相关文档中“课程名称”字符串信息进行格式设置具有重要意义.Lenx=0Dim A,B,i'定义变量A = Len(TextBox1.Text)'赋值B =""'赋值For i=1 To A'按字符循环B=Mid(TextBox1.Text,i,1)'改赋(在字符串中,从第i个字符开始取1个字符)If Asc(B)>0 Then'提取字符的ASCII值,判定字符是中文、英文或数字(中文字符的ASCII值为负值)Lenx=Lenx+1'改赋ElseLenx=Lenx+2'改赋End IfNextIf Lenx>0 ThenIf Lenx>0 And Lenx<=10 Then'如果字符串中字节数在1至10之间就执行“格式1”程序格式1'程序代码(略)End If……If Lenx>60 Then'如果字符串中字节数大于60MsgBox"“课程名称”大于60个字节,请重新输入60个字节(30个中文或60个英文)以内的字符!"'定义信息TextBox1.Text=""'清除数据End IfEnd IfEnd Sub图3 命题、批阅审核表打印预览效果3.4 自动生成《命题审核表》、《批阅审核表》功能的设计与实现自动生成格式化文档是本系统的特色功能之一.具体功能与实现方法:① 自动生成指定格式的Word文档(命题、批阅审核表空表).②能将“试卷基本信息”主界面窗体中,用户录入的试卷基本信息自动填入自动生成的审核表中,供用户打印或保存.具体操作:① 在“试卷基本信息”主界面窗体中,填入试卷基本信息.② 单击“生成《命题审核表》”或“生成《批阅审核表》”命令按钮,系统将自动生成《命题审核表》或《批阅审批表》(见图3).3.5 试题、答案输入功能的设计与实现试题、答案的输入方式是系统最具特色的功能.系统通过建立模板的方式,对不同类型的试题和答案内容进行了格式化,既方便用户操作又能实现试卷格式的标准化.实现方法:①采用Word传统的操作界面,建立“试题编辑”自定义工具栏.② 根据试卷的类型、大题和小题内容建立各类模板,并对各类模板运用VBA程序语言为其编程.③ 在“试题编辑”工具栏中,建立[试卷类型]、[大题型]、[小题型]等菜单栏和命令按钮,并将各类模板的VBA程序链接到相应命令按钮中.④通过自定义工具栏中相关命令按钮,生成相应的“试卷的类型”、“大题型”和“小题型”模板,再由用户将试题、答案等内容填入模板中,实现试题和答案内容录入的格式化操作.通过[视图]\[工具栏]\[自定义]在自定义选项中,选择宏类别,并关联相应的VBA程序,生成相应命令按钮,并将生成的命令按钮分类组成[试卷类型]、[大题型]、[小题型]等菜单栏,建成“试题编辑”工具栏如图4所示.[试卷类型]菜单下有“常规试卷类型”、“试题册与答题纸型”、“试题册与答题纸和答题卡型”三个命令按钮.编辑时单击需要的类型的命令按钮,就可生成所需的试卷卷首.[大题型]菜单下有“名词解释题”、“简答题”、“证明题”、“计算题”、“论述题”、“辨析题”、“案例分析题”、“单项选择题”、“多项选择题”、“填空题”、“判断题”、“判断改正题”等12个命令按钮.编辑大题时单击需要题型的命令按钮即可.如上述工具栏中未包含所需题型,可单击任一大题型修改实现.以大题型“名词解释题”模板的生成与编辑为例,介绍大题型模板的使用方法.第一步,在“试题模板”文档的“试题编辑”工具栏中,单击[大题型]/[名词解释题]命令按钮,系统生成“名词解释”大题型模板(如图5所示).第二步,在生成的“名词解释”大题型模板中,根据大题型模板编辑规则,在模板的相应单元格内填入大题信息,编辑后的大题型模板页面视图如图6所示.[小题型]菜单下有“常规题型”、“单选题型(备选答案一行1个)”、“单选题型(备选答案一行2个)”、“单选题型(备选答案一行4个)”、“多选题型(备选答案一行1个)”、“多选题型(备选答案一行2个)”、“填空题型”、“判断题型”、“判断改正题型”、“常规含图型”、“选择含图型”、“由试题库(非表格数据)自动生成”等12个命令按钮.以小题型“常规含图型”模板的生成与编辑为例,介绍小题型模板的使用方法.第一步,在“试题模板”文档的“试题编辑”工具栏中,单击[小题型]/[常规含图型]命令按钮,系统生成“常规含图型”小题型模板如图7所示.第二步,在生成的模板中,根据小题型模板编辑规则,在模板的相应单元格内,填入试题内容、标准答案及评分标准等信息,编辑后的小题型模板页面视图见图8.图4 试题编辑工具栏图5 “名词解释”大题型模板图6 “名词解释”大题型模板页面视图图7 “常规含图型”小题型模板图8 “常规含图型”大题型模板页面视3.6 自动生成试题和答案文档功能的设计与实现自动生成试卷和答案是本系统的核心功能.其主要功能与实现方法:①能将教师编辑在模板中的试题和答案分离,并且分别生成到系统提供的指定文件中.②用户只需单击“试题编辑”工具栏中的[生成·试卷·答案]命令按钮,根据系统提示,就能实现试题和答案文档的自动生成.③在试题和答案生成过程中,能对系统环境和模板编辑情况进行自动检测,发现错误中断试卷的生成,并提示出错原因,高亮显示出错模板,供用户有针对性地进行修改.在“试题模板”文档中,单击“试题编辑”工具栏中的[生成·试卷·答案]命令按钮,系统自动将“试题模板”文档中的试题和答案分离到系统的指定文件中,生成的“试题.doc”、“答案.doc”文档页面视图如图9所示.“生成·试卷·答案”命令按钮对应的VBA程序流程如图10所示,部分核心代码片段如下:Set wordshijuan=New Word.Application'创建试卷文档wordshijuan.Visible=True'试卷文档可见wordshijuan.Documents.Add'试卷文档至集合中Set worddaan=New Word.Application'创建答案文档worddaan.Visible=True'答案文档可见worddaan.Documents.Add'答案文档至集合中Active Document.Range.Copy'复制数据wordshijuan.Active Document.Range.Paste'在试卷中粘贴wordshijuan.Active Document.Tables.Item(table Num).Rows(row Num).Delete'将试卷文档中试题表答案部分删除With worddaan.Active Document'激活答案文档Active Document.Tables.Item(table Num).Cell(rowNum,2).Range.Copy'复制模板文档中答案内容.Tables.Item (.Tables.Count).Cell(iDaAn Row,2).Range.Paste'将答案内容粘贴到相应的位置worddaan.Active Document.Range.Copy'复制答案文档Windows("答案.doc").Activate'设置为当前活动文档Selection.Whole Story'选定全文Selection.Paste'将剪贴板上的内容粘贴wordshijuan.Active Document.Range.Copy'复制试卷文档Windows("试卷.doc").Activate'设置为当前活动文档Selection.Whole Story'选定全文Selection.Paste'将剪贴板上的内容粘贴图9 试题、答案文档页面视图3.7 答题纸的编辑设计与实现“答题纸.doc”与“试题模板.doc”文件的设计与实现方法基本相同,都内含VBA程序.不同点是“试题模板.doc”文件内编制的VBA程序可以控制系统中的多个文件进行自动化操作,而“答题纸.doc”文件内编制的VBA程序仅限于自身的自动化操作.图10 试卷、答案自动生成VBA程序流程图3.8 试卷文档的打印与保存试卷文档中试题(试题册)、答案、答题纸页面均为A3,打印方法有两种:第一种,使用A3打印机正常打印输出.制卷时将A3页面试卷缩小90%成8K页面.第二种,使用A4打印机输出.制卷时用A4页面试卷放大131%成8K页面.实现方法:[文件]/[打印]/在“打印”对话框的打印机名称框内,选择A4打印机/选择页、份数/在“打印”对话框的“缩放”栏内“按纸张大小缩放”组合框中,使用“下拉按钮”选择“A4”/单击“确定”命令按钮.其他试卷文档页面均为A4,采用A4打印机常规打印即可.试卷文档的保存可采用Word常规保存方式或在“试题编辑”工具栏中,单击[退出]/[存盘退出]命令按钮实现.4 结语以VBA技术构建的适应全校各学科需求的自动化试卷编辑系统实现了试题、答案、答题纸、命题审核表和批阅审核表文档的自动生成.本系统V1.0版于2008年11月在校园网中首次发表,2009年2月通过国家计算机软件著作权登记,获得全部版权.目前,该系统已在南通大学教务处、教学管理系统以及校园文化相关网页中公开发布,供全校教师下载使用.参考文献:[1]北京博彦科技发展有限公司.Office VBA编程高手[M].北京:北京大学出版社,2000.[2]王川.中文版Office 2000 VBA一册通[M].北京:人民邮电出版社,2000.[3]兰丽辉,李政,王海燕.基于Word的通用题库管理系统[J].现代教育技术2006,16(4):60.。
利用VBA在Word中实现试卷的自动生成沈媛媛;刘益成;郑恭明【摘要】主要以Microsoft Word 中的书签(bookmark)作为试题的标志完成试卷中定位,通过设置不同题型的模版并利用随机抽取算法实现了对题库中题目的随机抽取,在Word中实现了试卷的自动生成.【期刊名称】《智能计算机与应用》【年(卷),期】2007(000)001【总页数】2页(P25-26)【关键词】Microsoft Word;VBA;书签;随机抽取算法【作者】沈媛媛;刘益成;郑恭明【作者单位】不详;长江大学电子信息学院助教(在读硕士),荆州434023【正文语种】中文【中图分类】工业技术【文献来源】https:///academic-journal-cn_intelligent-computer-applications_thesis/0201239978803.html2 0 0 7 耳 2 月电脑学习第1 期利用 V B A 在 W o rd 中实现试卷的自动生成沈媛媛’ 刘益成郑恭明摘要主要以 M i c r o s o ft W o rd 中的书签( b o o k m a rk ) 作为试题的标志完成试卷中定位,通过设置不同题型的模版并利用随机抽取算法实现了对题库中题目的随机抽取.在 W o rd 中实现了试卷的自动生成。
关键词M i c r o s o ft W o rd V B A 书签随机抽取算击中图分类号 C 4 3 4 文献标识码 B 文章编号:1002 - 2 4 2 2 ( 2 0 0 7 ) 0 1 - 0 0 2 5 - 0 2A u t o m a ti c ally C o m po si n g o f P a p e r s B a s e d o n V B A i n W o r d Sh e n Y u a n y u a n L i u Y i c h e n g Z h e n g G o n g m i n g Ab str a ct T h e p a p e r m ai nlyu s e s M o c r o s o ft b o o k m a rk a s t e s t q u e s t i o n s ' s y m b ol to f i n i s h th e o r i e n t a t i o n i n t e s t p a p e r.B y d - esig ni n g all so rts o f p a tt e m s a n d u si n g r a n d o m s el e c t i o n alg o r ith m t o r e aliz e r a n d o m s el e c t i o n i n t e st q u e s t i o n s ' ba s e , th e p a p e r r e aliz e s a u t o m a t i c aLly c o m p o si n g o f p a p e r s i n W o rd.Ke y w o r d M i c r o s o ft W o rd V B A B o o k m a rk R a n d o m S el e c t i o n A lg o r ith m载程序运行时,它先经过输入采样,把现场所有输入数据和一些中间输出数据都读入输入映像区,然后扫描执行用户程序,执行过程中所需的所有信息都从输入映像区读取,将形成的输出数据放到输出映像区;当扫描结束后,集中刷新所有被控对象的信息,以此改变被控对象的状态。
基于WordVBA技术的试卷自动排版系统的实现第21卷第3期甘肃联合大学学报(自然科学版)Vol.21No.3 2007年5月Journal of Gansu Lianhe U nive rsity (Natural Sciences)Ma y 2007收稿日期232作者简介耿霞(832),女,天津人,天津师范大学在读硕士研究生,主要从事远程教育及网络技术研究文章编号:16722691X (2007)0320069204基于Wor d VBA 技术的试卷自动排版系统的实现耿霞1,谢延红1,2,宋小悦1,孟伟1(1.天津师范大学教育技术系,天津300074;2.德州学院计算机系,山东德州253023)摘要:针对目前教师出卷时排版工作量的繁重,应用W o rd VBA 技术构建并实现了试卷自动排版系统,适合各学科出卷排版需求,减轻教师出题和排版的工作量,并为学校提供统一的标准化试卷,已在我校广泛使用.关键词:W or d ;VBA ;自动排版中图分类号:TP319 文献标识码:A0 引言虽然Word 提供了强大的文字处理能力和文档控制能力,但在教师利用W or d 命制试卷的过程中,只使用Word 的基本功能还会涉及很多繁琐的排版工作需要教师亲自完成,因此需要一种自动排版的功能,使教师在出卷时只考虑命题内容,而排版格式自动实现.1 目前教师出卷的方式和存在的问题目前教师出卷已实现电子化,使用Wor d 应用程序提供的强大的字处理功能来命制试题,但在试卷排版上却过于灵活,缺乏统一的试卷格式标准.针对这一问题,大多数院校采取定制试卷样卷来规范试卷的排版,要求教师出题后按照样卷格式自行排版.教师通常需要花费大量的时间来排版,即使这样,由于在排版过程中参杂较多的主观因素,排版后的试卷仍然不能达到完全的格式统一,因此,需要一种工具能够自动对教师命制的试卷进行排版,生成标准的统一的试卷样式,既减轻了教师排版的工作量,又有利于试卷的标准化.因此,试卷自动排版系统应运而生.2 系统实现的关键技术—VBAVBA (Visual Ba sic for Applicat ions )是一种新一代的标准宏语言,具有跨越多种Office 应用软件并控制应用软件对象的能力,用于定制和扩展Office 功能,是Office 套件的一部分[1].它能给Office 应用程序提供更多的方法,让用户完成Of 2fice 本身所不具备的功能.VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言.程序开发者通过使用VBA 可以开发出具有相似Office 的界面和外观的程序,使最终用户在熟悉的软件环境中掌握由VBA 提供的新功能.利用Word VBA 程序处理Word 文档的优点主要有:(1)对多个文档进行交互数据和文本操作,在VBA 程序中,则可以在不激活文档的前提下,对文档中的文字进行处理;(2)可以对不同文档进行格式设置,文本编辑等;(3)如果需要对文本使用系统内置函数,VB A 程序与系统内置函数的结合更加紧密.总之,通过使用VB A 程序,用户可以随心所欲地操作文档中的内容,而且可以使这些操作自动化、通用化、规范化、交互化.总之,VBA 的独特之处在于它由应用程序控制,反过来,它又可以增强该应用程序的功能[2].3 利用VBA 实现的试卷自动排版系统的解决方案[3~5]选择Office 套件中自带的VBA 功能,通过编写后台宏代码开发的试卷自动排版系统,最终用户可直接使用Word 进行编辑,而无需再安装其他软件即可轻松、熟练使用,这样,几乎不需要对用户进行过多的培训,只要用户熟悉使用Word ,即可快速上手使用,从而编辑出格式统一的标准化试卷.3.1 格式化试卷卷头一份标准的试卷首先要有一个标准的卷头,:2007002.:19.。
用vba在word中二次开发试题库试题库是一个非常重要的工具,在不同的领域,例如教育、培训、考试等,都需要使用试题库。
在这个数字化时代,使用电子试题库已经成为越来越普遍的选择。
Word软件作为Microsoft Office套件中的标志性软件,也可以用来创建和管理电子试题库。
VBA(Visual Basic for Applications)是一种用于Microsoft Office套件程序的编程语言,可以使用VBA来编写Word程序的宏和脚本。
使用VBA编写程序可以自动化一些重复性的工作,例如创建大量试题并导入到试题库中,也可以在试题库中快速搜索试题,删除试题等操作。
下面是一些可能的VBA编程实现试题库二次开发的功能:1. 批量导入试题:先将试题保存为txt格式,然后使用VBA读取txt文件中的试题进行解析和导入到试题库中。
可以通过弹出窗口设置试题的基本属性,如所属科目、难度、类型等。
2. 快速创建试题:可以编写VBA宏来自动生成一些试题,如选择题、填空题、判断题等。
这样可以减少手动输入试题的时间和工作量。
3. 批量修改试题:在试题库中进行批量操作,例如将某一类试题的难度级别全部提高或降低、更改试题的答案等。
可以通过搜索或筛选功能来进行批量操作。
4. 导出试题:通过VBA编写程序可以将试题以不同的格式导出,例如Excel、PDF、TXT等。
这样可以方便地将试题分享给其他人或用于复习备考。
5. 答案自动批改:编写一个自动批改程序可以将学生提交的答案与试题库中的答案进行比对,并得出成绩。
这样可以大大减少教师批改试卷的时间和工作量。
以上是一些可能的VBA编程实现试题库二次开发的功能,当然还可以根据实际需求进行更多的定制化开发。
诚然,在实现这些功能之前需要掌握一定的VBA编程知识,另外还需要进行不少的调试和测试工作。
但是,一旦开发好了试题库的VBA程序,将会帮助用户节省大量的时间并提高工作效率。
基于VBA技术自动生成通用图文试题库
基于VBA技术自动生成通用图文试题库
[摘要]提出了在word程序中利用Office的编程语言VBA,实现题库生成及试卷生成。
编写程序的步骤:1建立题库;2统计题量;3抽取试卷;4生成试卷及答案。
[关键词]vBA:Word;试题库
1引言
面向对象的VBA技术是对office进行二次开发的有效途径,利用VBA在Word环境中实现试卷的自动生成。
其操作简单、易扩展,对文字和图形处理很方便。
目前,各类考试卷的试题已基本都是从试题库中抽取,因此一个合理的、便于用户使用的试题库系统越来越受欢迎。
目前已有许多试题库系统,基本采用的是Visual Basic、Visual c++等语言环境,而这些系统在设计过程中很难对文字图形排版,不便于用户对试题进行编辑。
本文主要介绍一个完全基于Word的通用图文试题库的实现方法。
具有图、文、表混排,随机抽题,自动组卷,编辑打印、题库维护、数据统计等功能。
主要技术包括:试题库的组织、多媒体试题和答案管理、试题参数的设定和使用,试题分布表的设计和使用,Word表格和单元格处理,随机抽取试题,任意更换试题的实现、Word文档内容的选定等。
2试题库系统的实现
2.1系统功能
用户可以对试题进行修改、添加和删除,最后在试题库系统选题随机生成试卷。
2.2功能实现
2.2.1添加试题。
Word中自动出卷1总体设计方案(1)建立试题库及设计含固定卷首的空白试卷。
WORD文档要从ACCESS数据库形式的试题库中调用试题,是Microsoft Office应用程序之间的信息交换。
根据需要可设计一个便于执行各种操作,包括具有增、删及调用功能的ACCESS数据库(本例库名为pxp.mdb),库中含填空题、选择题、判断题、问答题及综合题等各类题型的表(如填空题对应于表pxptkt)。
试卷往往可以有固定的卷首格式,故预先设计含固定卷首(图1)的一空白试卷供程序调用。
(2)创建应用程序界面。
自动出卷所涉及的试题提取、编写题头、试卷排版、试卷分析、保存试卷及打印输出等任务都在同一界面窗口中得以完成。
(3)该应用程序嵌入于Microsoft Office某一应用程序中。
这一应用程序可以在《化学工程考试系统》中担当被调用的模块,为了不影响Microsoft Office正常操作,也可作为Microsoft Office某一应用程序的一部分(该应用程序嵌入在WORD中)嵌入其中,使Microsoft Office的应用功能得到扩展。
3 具体方案的实现可在ACCESS应用程序中建立试题库。
一表一题型,一题一记录,每一记录中含题目、答案、难度系数等项目(难度系数便于试卷分析用)。
以下主要就嵌入式应用程序的某些关键之处作重点阐述,由于篇幅所限,许多细节此处不多赘述。
3.1 嵌入方案的实现在Office的各应用程序中,用VBA可以创建许许多多的自定义小程序。
这些小程序往往通过创建一个工具栏中工具按钮或创建菜单项来运行,即采用嵌入的方式使Office各应用程序的应用功能得到扩展。
比如在Office应用程序Word中创建一个工具按钮,当用户单击所创建的工具按钮时,Click()事件触发,并执行特定的代码以响应事件。
因此,创建工具按钮来运行VBA程序不失为一种扩展Office各应用程序应用功能的嵌入式方法。
3.1.1 创建一个工具按钮打开Visual Basic编辑器,添加一个新的类模块,其名称默认为类1。
快速输入填空题的空格线我看到很多老师在输入填空题的空格线时,都采用先关闭输入法,后按住“Shift”+“_”的方法画空格线。
用这种方法,是以半角字符画线,而且在录入过程中需要不断地切换输入法,很不方便。
如果我们利用Word 2000中提供的“宏”功能,指定键盘上的一个组合键对应一段空格线,就可以在以后的输入填空题的空格线中轻松地使用快捷键来画线了。
单击“工具→宏→录制新宏”,打开“录制宏”对话框,输入宏名,如“空格线”,并在“将宏指定到”栏中单击“键盘”,打开“自定义键盘”对话框。
这时在键盘上按下用来代替该宏操作的快捷键,如“Ctrl”+“F12”;在“将修改保存在”对话框中,选择“试卷”。
如图1所示。
依次单击[指定]、[关闭]按钮,光标变为空心箭头加磁带形式,进入录制状态。
这时按住“Shift”+“_” 画一段空格线。
然后,单击“录制宏”工具栏中的“停止录制”按钮,就完成了宏录制。
注意:在录制状态,所有操作都将被录制到宏操作里,所以不要进行和画空格线无关的操作。
这次录制宏,看起来挺麻烦,但能够做到一劳永逸,有了它,以后就可以轻松方便了。
在以后输入填空题的空格线时,只需用“Ctrl”+“F12”就可以轻松输入空格线。
如果觉得空格线长度不够,可以连续按“Ctrl”+“F12”。
快速输入判断题的虚线和括号在判断题的最后,一般都要输入一个填写答案的括号,这个括号的位置往往设在题目最后一行的最右边。
一般老师们习惯用虚线来连接题目和括号。
在此,也可以录制一个“宏”指定到键盘上,使判断题后的虚线和括号也能快捷输入。
打开“录制宏”对话框,输入宏名,如“虚线括号”,并将宏指定到键盘的组合键如“Ctrl”+“F11”。
进入录制状态后,进行如下操作:在水平标尺的右端(希望判断题题末右括号出现的位置)单击,标尺上会出现一个制表位“┗”,双击该制表位,打开“制表位”对话框。
在“对齐方式”中,选择“右对齐”;在“前导符”栏中,选择虚线来连接题目和括号(如图2所示)。