基于VBA技术的一键试卷模板生成系统的设计与实现
2018-07-18王超
王 超
(临泉县委党校,安徽临泉236400)
0 引言
MSWord是当今流行的电子文档编辑、排版软件之一,已成为办公人员的得力助手,被广泛应用于社会的各个领域。笔试应用于各行各业,在教育教学领域最为频繁,出卷任务是教师例行之事。现阶段很多学校由于没有现成的统一试卷模板格式,导致卷面设计一个教师一种版式,一轮考试下来,出现了各式各样的卷面样式,有失考试的严肃性和规范性,同时在格式设计和排版上也花费教师大量的时间和精力。这就需要一款能够设计出一套统一、规范、标准的试卷模板格式的软件系统来解决这一问题。
1 研究试卷模板生成系统的意义
试卷模板是具有统一格式、一定相同内容的试卷样式。在Word中,利用VBA技术的处理能力自动实现试卷模板生成系统的意义在于卷面格式的统一、标准、规范,可以快速高效地生成试卷。在同一部门、同一所学校出卷时同时使用该系统,不仅使卷面格式统一,设计规范,还能美化卷面。现阶段,教师完成一套出卷任务,快者1-2小时,慢者则需要数小时,仅在卷面格式设计和排版方面就要花很多时间,而利用研究的试卷模板生成系统能在4秒内完成模板设计,即使加上部分内容的修改及试题填充,最迟也能在15分钟内呈现出一套规范的,标准的,完整的试卷,大大减轻教师出卷的压力,提高出卷效率。它与自动排版系统的区别在于先生成模板,后套用模板格式;优点在于设计更加规范,格式更加统一,卷面更加美观,操作更加便捷,完成更加高效。
2 关键技术VBA的应用
Visual Basic for Applications,简称 VBA,依托微软Windows系统的应用程序(如MSOffice)为平台,对其进行二次开发以便扩展其功能,同时也是其自带内嵌的功能研发平台。VBA一旦脱离该平台就无法运行,实现不了其功能,发挥不了其作用,就失去它存在的价值和意义。在MSOffice中,VBA提供了大量访问对象(如页面设置PageSetup、表格设置Tables、段落设置Paragraph、字体设置Font等),由于它具有强大的对象控制能力,功能的扩展及定制能力,突破了MSOffice的自身极限,完成MSOffice本身无法完成的功能[1]。通过对这些对象的属性设置、方法使用和事件驱动,实现对微软Word 2010的再次开发,自动完成对文档的一系列操作,从而实现一键试卷模板生成的功能。
3 系统的设计分析与实现
基于VBA技术的试卷模板生成系统的设计与实现是以Word 2010为平台(MSOffice具有强大的通用性和兼容性,Word 2000以上版本都可以使用VBA技术,目前大多数用户选择安装MSOffice 2010,就以此版本为例)。首先在电脑中安装Word 2010软件,然后通过创建宏的方式编写VBA代码,最后实现一键试卷模板系统生成。为进一步推广使用该系统,可以将实现该功能的VBA程序代码保存起来,粘贴到所需电脑Word软件的宏里。会运行宏就会使用它,操作简单,使用方便,无需对使用者进行任何操作培训。简便易行的操作方式能让教师在很短的时间内设计出优秀的试卷模板格式。
根据试卷模板格式设置步骤和方式,试卷模板生成系统的主模块分成六个子模块来实现(如图1所示)。每个子模块完成其各自的功能,这样设计的目的是使系统层次清晰,增强系统可读性;每个功能模块不仅功能独立,减少交叉及代码重复,还有利于程序重复调用[2]。该系统采用自定义快捷键、自定义选项卡及添加到快速访问工具栏等方式来解决一键实现试卷模板生成问题。
图1 系统模块设计结构图
3.1 卷面属性设置模块
卷面设置模块主要设置卷面纸张大小,页边距及版式等。按照试卷常规设计具体参数:纸张A3;上下左右边距分别为2 cm,2 cm,4.4 cm,1.8 cm;奇偶页的页眉页脚各不相同;每个页面分两栏;多页时采用“对称页边距”;为了实现卷面属性设置的自动化,需要调用PageSetup对象。为了更好的卷面布局设计,利用TableGridlines设置表格虚框线的显示。由于厘米转换函数“Centimeter⁃sToPoints”在代码编写中需要输入若干次,为了减少字符数量,重新定义一个函数“CTP”来取代“CentimetersToPoints”。利用VBA技术,实现自动卷面属性设置程序如下:
3.2 外装订线设置模块
外装订线位于奇数页卷面的左侧,左边距位置。将卷面左边距设置为4.4 cm,是为了在此位置设计卷面的装底线。该位置除了有装订线的标志外,还有考生需要填写的个人相关信息(以学校为例,如学校、姓名、班级、考号等)。为了编辑试卷内容时装订线不受影响,将装订线以页眉内容的方式添加。装订线共有3个文本框组成(如图2所示),上起第一个为外装订线的外边缘栏,第二个为考生信息栏,第三个为装订线的内边缘栏。在该模块中用到对象TextFrame设置文本框属性,Shapes及AddTextbox来创建文本框。由于系统中要多次清除页眉或页脚,在此模块中自定义了一个函数“Clear_HeaderFooter”。
图2 外装订线设置效果图
利用VBA技术,实现自动外装订线设置的程序如下:
3.3 内装订线设置模块
内装订线位于偶数页卷面的右侧,右边距位置。在卷面属性设置程序中,用“MirrorMargins=True”来设置“多页对称页边距”,与外装订线卷面形成对称,试卷正反打印时为同一位置。内装订线的第二个文本框不再是考生信息栏,而是提醒信息栏,让考生书写时不要越过内边缘装订线。由于内装订线设置在偶数页页眉中,当设置内装订线时,先确保卷面页数至少是两页,否则激活不了偶数页页眉,实现不了内装订线设置。在程序开始部分利用BuiltInDocumentProperties(wdProper⁃tyPages).Value来判断卷面页数,少于2时插入一个分页符,形成两个页面。在内装订线设置完成返回主文档之后,再调用子程序“Clear_Char”,清除文档中的分页符和空段落。
利用VBA技术,实现自动内装订线设置的程序如下:
3.4 页码设置模块
页码显示在卷面的下方,页面的页脚位置。因为卷面是A3纸张并分为两栏,所以用“◎”作为两栏的分界符。在分界符左边居中位置插入域“PAGES*2-1”和“SECTIONPAGES*2”,获取左边(奇数页)页码和本节总页码,在右边插入域“PAG⁃ES*2”和“SECTIONPAGES*2”,获取右边(偶数页)页码和本节总页码。通过程序运行后,在卷面的首页分界符左边页码显示“第1页共2页”,右边显示“第2页共2页”。
利用VBA技术,实现自动页码设置的程序如下:
3.5 卷头内容设置模块
卷头内容设置模块主要是在试卷的开头部分设置通用信息(如图3所示)。试卷生成后,教师可以根据实际情况,进行信息的修改。在此模块中自定义了一个函数“Font_Setup”和子程序“Move_Down”。“Font_Setup”的作用是设置不同的字体,字号,字形等信息。“Move_Down”的作用是另起一行,从下一行的行首开始。
图3 卷首内容设置效果图
利用VBA技术,实现自动生成试卷开头内容的程序如下:
3.6 试题类型设置模块
常见的考题类型有选择题、填空题、问答题等。试题类型设置模块功能是以表格的形式自动设计出这些常见的考题类型。为满足其他题型的需要,最后还设计一个自定义考题类型,教师可以利用复制粘贴的功能设计更多的题型。各题型除内容不同外,其格式一致,由于反复调用,创建了自定义函数“Question_Type_Setup”。通过该模块的主程序“Question_Type”多次调用“Ques⁃tion_Type_Setup”来设计选择题,填空题,问答题等。在自定义函数“Question_Type_Setup”中,主要是创建三个表格(如图4所示)。
图4 选择题设计效果图
利用VBA技术,实现自动生成试题类型的程序如下:
3.7 生成试卷模板系统的主程序
主程序包含六个子模块,按照试卷模板设计的先后顺序依次调用。教师在出卷之前,只需运行该系统的主程序“试卷模板生成系统”,程序会按照先后顺序自动运行,一套统一、规范、标准的试卷模板格式就呈现在眼前。
利用VBA技术,实现自动生成试卷模板系统的程序如下:
3.8 卷面编辑
运行“试卷模板生成系统”生成试卷模板后,教师利用删除、复制粘贴的功能,先确定题数及类型,然后在相应类型试题框内输入考题,修改试题分值及说明信息、卷头信息,一套规范、标准的试卷就呈现出来。
3.9 一键生成试卷模板的实现
为进一步简化操作步骤实现一键生成试卷模板,可以将“试卷模板生成系统”命令置于在Word窗口的最显眼、最易操作的地方[3]。
方法一:添加到快速访问工具栏
快速访问工具栏位于Word功能区上方,运行菜单“文件∕选项∕快速访问工具栏”从下拉列表中选择“宏”,找到“Normal.NewMacros.试卷模板生成系统”,点击右侧的“添加”按钮后,通过下方的“修改”命令,将其标签更改为“试卷模板生成系统”,将其图标更改自己喜欢的符号。
方法二:添加到自定义选项卡
运行菜单“文件∕选项∕自定义功能区”在对话框右侧“自定义功能区”下拉列表中,选择“主选项卡”,在“开发工具”下面,通过“新建选项卡”命令按钮添加“新建选项卡”,命名为“出卷”,将其下面的“新建组”命名为“试卷模板”,并选中;在对话框左侧“从下列位置选择命令”的下拉列表中选中“宏”,从文件名中找到“Normal.NewMacros.试卷模板生成系统”宏,单击右侧“添加”按钮完成添加,再单击“重命名”按钮,将“Normal.NewMacros.试卷模板生成系统”改成“试卷模板生成系统”,同时也可以更改其默认的图标符号。操作完成后,在“出卷”选项卡“试卷模板”组中,就可以看到“试卷模板生成系统”(如图5所示)。
图5 自定义选项卡设置图
方法三:自定义快捷键方式
运行菜单“文件∕选项∕自定义功能区”在“键盘快捷方式”的右侧有个“自定义”按钮,打开“自定义”对话框,在类别列表中选择“宏”,并在其右侧列表框中选择“试卷模板生成系统”,点击下方“请按新快捷键”,定义一个快捷键(如:F4),点击“指定”命令,在“当前快捷键”栏,就看到F4了,最后关闭对话框。今后需要出卷时,仅需按一次F4键,4秒内就能自动生成试卷模板。
4 结论
研究环境以Word2010为平台,利用其嵌入的VBA编程语言,开发出自动生成试卷模板功能的系统。在同一部门、同一所学校同时使用该系统进行出卷,不仅使卷面格式统一,设计规范,还能美化卷面,强化考试的严肃性。该系统大大减轻教师出卷的压力,减少工作量和出错率,提高出卷效率。该系统生成的是一套通用的试卷模板,不仅适用于使用最为频繁的教育教学场所的学校,将外装订线考生信息栏的“学校”改为“单位”或其他名称,还适用于各行各业的笔试出卷。由于VBA编程语言嵌入在MSOffice 2000软件以上各个版本中,编写的程序之间相互兼容,因此在Word2010平台研发的该系统也可以在其他各个版本上运行,达到同样的目的。在Office办公软件中,VBA具有强大命令扩展功能。为满足日常工作的需要,减少重复操作,降低工作强度,结合工作实际,可以研发出更为复杂、高级的文档自动化处理程序。