Word宏在山西省职业技能命题题库中的应用

2017-01-11 01:59李小虎
山西电子技术 2016年6期
关键词:光标题库括号

李小虎

(山西广播电视无线管理中心,山西 太原 030001)

Word宏在山西省职业技能命题题库中的应用

李小虎

(山西广播电视无线管理中心,山西 太原 030001)

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言[1],是微软开发出来在其OFFIC桌面应用程序中执行通用的自动化(OLE)任务的编程语言。本文使用word宏功能编辑了一个格式转换程序,用以快速地将命题老师的题转化为可以被题库软件识别的格式,文章主要论述了程序的设计思路,以及各种辅助方法,最后使用宏程序顺利地完成格式转化,迅速完成了题库转化的任务,节省了大量时间。

VBA;宏;Word;题库格式

微软在其OFFICE系列软件上提供了Visual Basic程序,用来扩展OFFICE系列软件的程序功能,一般称为宏功能,宏程序的设计语言学术名称叫Visual Basic for Applications(VBA),是微软在1993年开发设计出来的自动化语言[2],Word宏功能简单点理解就是使用程序对word中的格式输入等等操作进行批处理,在遇到比较繁杂的文件处理时,使用宏功能能够很好地节省时间,做好工作[3]。

本人所在部门承担了山西省技师命题任务,由部门中四人分别针对电视、调频、中波、微波四个部分的内容,每个部分的内容需要在教材上找寻50个理论的鉴定点,25个操作的鉴定点,每个鉴定点需要设计7道题:两道判断、三道单选、两道多选,总计算有:每部分75个鉴定点*每个鉴定点7道题*4部分=2 100道题。根据山西省职业技能鉴定中心出具的格式导入说明,每道题都需要变换为特殊格式,最后将题导入到题库中。本人承担了格式变换导入工作。由于任务重复度大、任务量多,最后考虑使用宏功能实现对于格式的变换。

1 要求的格式说明

如图1所示,导入格式必须将每道题题干前部加入“[T]A-A-001 5 1 3”,尾部加入“[T/]”,用以表明题干内容,同时由于鉴定点的不同,前部加入的内容也会不同,例如“A-B-001”、“B-A-001”、“A-A-002”等变化,同时代表题型的数字部分也会随着判断、单选、多选而变化。对于答案部分也是加头加尾,只是需要注意的是如果是多选题则多个答案之间必须加入逗号隔开,例如“[T]A,B,C,D,E[T/]”。对于整体的内容来说,题与题之间还必须加入空行隔开,如图2所示。

图1 导入格式说明

图2 多题内容格式

2 宏程序的设计

由于四位出题人已经将题出完,每个人的题型排列各有差别。如图3是中波题型,中波题型是单选、多选、判断的排列方式。如图4是微波题型,与中波题型不同的是答案写在了每道题的最后而不是填入到括号里,以及判断题的答案是用英文字母XV来表示正确错误。不过每个人每个鉴定点的格式是相同的,对此,将格式变换设计为两步走。将每个鉴定点的题复制到单独的新建word文档,转化到最终格式后复制粘贴到总文档里。

图3 中波原始格式

图4 微波原始格式

第一步为每个部分的题设计一个转化程序,将格式转换为如图5的格式,图5所示标准题型排列为判断、单选、多选,同时每个鉴定点的题都是“1、”“2、”“1、”“2、”“3、”“1、”“2、”的开头表示,这个标识在下一步的程序设计中非常重要。对于中波题来说转化为标准格式,只需要利用代码寻找第三个“1、”,然后将“1、”到文档尾的内容全部选中,剪切,将光标移到文档首,粘贴,这样就将判断题放到了前部,最后将“多选题:”“判断题:”删除,去掉空行,中波格式就转化为标准格式了。对于微波题来说,因为答案位置不同,以第一题为例,搜寻第一个“2、”,再将光标上移一行,选中本行,剪切,向上通配符查找“(*)”定位第一题的括号,然后移动光标到括号里,粘贴,就将答案放到题中的括号中了。剩下的电视、调频也各自略有调整,转化为标准格式。

图5 标准格式

图6 最终格式

第二步是将标准格式转化为最终格式(如图6所示),由于每个鉴定点的鉴定范围和排序不一样,所以程序开始利用InputBox函数,弹出输入框输入标识,点击“确定”将标识传给程序,如图7所示。接下来用全部替换代码去除掉题中的全部空格,之后程序转化以第一题判断题为例,查找第一个“1、”并将之替换为“[T]A-A-@ 2 1 3 ^p”,其中“^p”代表回车换行,然后通配符查找第一个“(*)”并将之复制后替换为“[T/]”,这样题干部分就处理完毕。对于答案部分则查找第一个“2、”,光标移到行头输入“[D]”,然后将刚才复制的答案粘贴,接着输入“[D/]”,最后利用代码回车,将后续的部分换行。如图8所示,红框中为判断题1。其余各题也是相同处理,最后将所有“[D](”替换为“[D]”,“)[D/]”替换为“[D/]”,“A-A-@”替换为输入的标识“A-A-001”。最后每道题后面加空格行,多选题的答案中每个字母间加逗号,就完成了转化,加逗号代码的部分代码如下(两个多选的情况)。

Selection.MoveRight unit:=wdCharacter, Count:=10……光标向右移动10个字符

With Selection

If .Characters(1).Information(wdFirstCharacterColumnNumber) = 1 Then……如果光标移到下行首

Selection.MoveUp wdParagraph, 1……上移到答案行

Selection.HomeKey unit:=wdLine

Selection.MoveRight unit:=wdCharacter, Count:=4……光标右移四个字符到两个答案中间

Selection.TypeText Text:=","……加入逗号

B = 1……改变标识符的值

ElseIf B = 0 Then……否则的话

Selection.HomeKey unit:=wdLine[1]……光标移到答案行首

Selection.MoveRight unit:=wdCharacter, Count:=11……向右移动11个字符,后面代码将判断答案是否为3个多选的情况,与这段代码类似,在此篇幅限制,读者自己举一反三

End If

End With

图7 标识输入框

图8 判断题转化过程

3 转化过程的注意点

在转化过程中由于程序是标准化执行,也会遇到转化格式失败的例子,以下将失败原因和解决方法提出来给读者参考。

1) 由于程序是判断全角括号,有些括号由于出题者的原因使用的是半角括号,会使得程序找括号出现错误导致格式转化失败。解决方法是将出题者给与的原始文档中搜寻半角括号,然后全部替换为全角括号。

2) 有时候出题者会在一道题中放两个括号,导致括号定位失败而格式混乱。解决方法是将其中一个括号去掉,转化完成后再添加上。

3) 也有的题转化格式失败是由于出题者疏忽,没有在多选题中添加第五个答案,导致程序对“E、”定位失败。解决方法是在转化之前注意查看多选题是否有五个答案。

4 收尾工作

在实际运行的过程中,我们要先找例题调试,确保程序运行稳定,最后我们把设计好的宏的快捷启动方式添加到快速工具访问栏上(如图9所示)。在实际使用的过程中,点击对应的按钮,宏程序就能快速开始工作,极大地简化了启动流程,实现一键格式转化。

图9 宏快捷键

5 结束语

宏程序编辑中也会遇到代码不懂的问题,我们可以充分利用微软提供的录制宏的功能,将所需功能利用此功能转化为代码添加到程序中,当然,并不是所有的代码都能够利用录制功能得到,要多参考别的VBA编程例子和书籍。本程序的应用并没有涉及到比较复杂的循环嵌套之类的语句,只有在多选题的答案中加逗号时使用了IF语句判断加逗号的几种情况,总体上是所用的代码范围较广但是难度不大,读者要根据自己实际的应用,利用IF、do while等语句判断各种情况,程序设计完成也要注意找例子进行调试,确保程序能够实现预先设计的功能。

[1] 杨晓亮.Word VBA高效排版范例应用[M].北京:中国青年出版社,2005.

[2] 李桂成,张永奎,闰锐.Word操作题自动阅卷的设计与实现[J].计算机工程与设计,2002,23(4):55-57.

[3] 林群英.自动出卷评分系统的实现[J].湖南工业职业技术学院学报,2003,3(1):26-28.

[4] 林丕源,黄葵英.Word2000中文版操作技巧与应用实例[M].北京:电子科技大学出版社,2000.

Application of Word Macro in Shanxi Province Professional Skills Proposition Database

Li Xiaohu

(ShanxiAdministrationCenterofRadioandTV,TaiyuanShanxi030001,China)

Visual Basic for Applications (VBA) is a macro language which is developed by Microsoft in its desktop application to perform the task of general automation (OLE) programming language. This article uses the word macro to edit a format conversion program and rapidly convert the proposition of teacher's questions to the format which can be identified by test software. The paper mainly discusses the application of design thinking as well as a variety of auxiliary method. Finally, it uses the macro program to smoothly complete the format conversion and quickly complete the test task that saves a lot of time.

VBA; macro; word format; the question bank format

2016-08-22

李小虎(1986- ),男,山西人,助理工程师,硕士,主要研究方向:无线发射。

1674- 4578(2016)06- 0054- 03

TP 317.2

A

猜你喜欢
光标题库括号
括号填数
“勾股定理”优题库
我曾丢失过半个括号
“轴对称”优题库
“入”与“人”
“轴对称”优题库
“整式的乘法与因式分解”优题库
漏写括号闹出的笑话
陈光标吃剩饭倒了谁的胃口
陈光标:巴菲特先生,我要裸捐!