APP下载

VBA在Word中的应用

2014-04-29余姝华

新课程学习·中 2014年2期

余姝华

摘 要:教师一般应用Word来命制试卷,但收集试题和排版工作量非常繁重,利用VBA在Word中的应用,开发一个自带试题库,教师可以对题库进行添加、修改和删除试题等功能;并能够对所选择的题目进行自动排版。教师可以高效完成一份高质量的试卷,彻底减轻教师命制试题的工作量。

关键词:Word;VBA;自动排版

目前大多数学校、教师利用Word命制试卷,需要花费大量的时间来收题、排版,而且排版后的试卷格式也不标准。通过VBA for Word开发一款自带试题库和试卷排版功能的系统,教师可以

对题库中的试题进行添加、修改和删除等管理,对选好的试题进行自动排版,生成标准的、统一的试卷,每位教师都可以在短时间内高效地完成一份高质量的试卷。

一、试卷结构分析

以语文试卷为例,紙型为A3,方向为横向,版面分左右两栏,左边最上面一般为一级标题并居中显示某次语文考试试卷。试卷正文大致包括:基础知识、现代文、文言文和写作四大块内容。基础知识部分主要是:选择和填空,在试卷排版中题目需要左缩;现代文部分主要包含:正文内容和正文后的习题,正文内容标题需要居中,正文首行缩进2个字符;文言文部分的排版和现代文基本相同;写作部分排版比较麻烦的是作文格子的编排,它是上下行之间要空开一行的表格。

二、系统功能模块分析

本系统主要有三大功能模块:添加试题、修改试题(包括修改和删除)和试卷自动生成。数据库采用Access,主要考虑它移植方便、便于管理。试题存放在数据库中,在对大量试卷分析时发现,一个大题中有若干个小题,而每个大题所含的小题数都是不同的,所以在设计数据库时采用了多表并建立关系。

三、系统功能的实现

1.添加试题

在系统设计需求分析中考虑到教师在命制试卷时,收集试题耗时,试题的保密性差,所以在本系统中直接设计了试题库。题库可以对试题进行有效地保密,因为题库量很大,组卷时按条件随机组卷,猜题押宝命中概率很小。有了题库,可以马上启用备用的平行试卷,或在考试前的最后时刻随机决定平行试卷中的一套作为正式考卷,从而达到出其不意的效果。试题库极大地方便了实现计算机科学的管理(修改、增删、试卷合理生成、浏览、打印等),又因试卷的随机生成,提高了试卷的保密程度,从而进一步提高了考试的效果,充分体现出考试的严肃性和公平性。

2.修改试题

该模块主要实现两个功能:删除和修改。教师对该系统库中的试题可以做出相应的修改,或者对不必要的试题进行删除操作。

这一模块与上面的添加试题模块都是引用ADO连接ACCESS数据,并对数据保存、修改和删除。

3.自动排版并生成试卷

该模块主要有两块内容:试卷版面设置和试卷试题设置。

(1)试卷版面设置

用户可以在“试卷纸张大小”下拉框中选择相应的纸型,程序中主要是通过VBA的Application对象的ActiveDocument.PageSetup.PaperSize属性设置试卷纸张的大小;在“请输入试卷大标题”文本框中输入将要生成试卷的标题。比如,“2013学年第二学期九年级第一次语文月考”,我们在程序中是通过Application对象的如

下属性实现:

.ActiveDocument.PageSetup.PaperSize=papType(“A3”)

‘设置试卷页面纸型

With Selection.PageSetup.TextColumns

‘对页面进行分栏

.SetCount numcolumns:=2

.EvenlySpaced=True

.LineBetween=False

.Width=CentimetersToPoints(5.84)

.Spacing=CentimetersToPoints(2.96)

End With

.Selection.Style=ActiveDocument.Styles(“标题1”)

‘设置为“标题1”

.Selection.Font.Name=“黑体” ‘字形

.Selection.ParagraphFormat.Alignment=wdAlignParagraphCenter

‘对标题居中对齐

.Selection.Font.Size=18 ‘标题字号18号

.Selection.TypeText “2013学年第二学期九年级第一次月考+Chr(10)” ‘设置一级标题,Chr(10)为换行

(2)试卷试题设置

该模块分为四大块:基本知识(选择题和填空题)、现代文、文言文(文言文阅读和古诗)和写作。教师按照试卷的要求选择需要的题型,在对应题型下输入题数,若输入的题数大于系统库中的题数,则系统会有相应提示。

试题是从试题库中随机抽取的,并要求不能再次抽中,所以,在随机生成函数Rnd前加上Randomize函数,这样可以避免抽到的试题被重复抽中。

(3)试卷的卷面内容排版

试卷的排版主要包括试卷的标题、字体大小及段落格式等方面。这些都可以利用Application对象中的以下性能来实现自动

排版。

.Selection.Style=ActiveDocument.Styles(“标题2”)

‘设置二级标题

.Selection.Font.Size=12

‘二级标题字号为12号

.Selection.Font.Name=“黑体”

‘二级标题字体为宋体

.Selection.TypeText“一、基础知识”+Chr(10)

‘设置二级标题

以上代码主要是对二级标题设置

.Selection.Style=ActiveDocument.Styles(“正文”)

‘设置正文

.Selection.Font.Size=10

‘设置正文字号为10号

.Selection.Font.Name=“宋体”

‘设置正文字体为宋体

With Selection.ParagraphFormat

.CharacterUnitLeftIndent=2

‘正文内容左缩进2字符

.CharacterUnitFirstLineIndent=-2

‘正文内容首行悬挂-2字符

End With

.Selection.TypeText num & "、" & rs(0)。Value+Chr(10)

With Selection.ParagraphFormat

.CharacterUnitLeftIndent=4

‘正文内容左缩进4字符

.CharacterUnitFirstLineIndent=-2

End With

Word应用程序是目前应用最广泛的排版软件,但是大部分人只能使用它的常规功能来排版。利用VBA for Word可以实现繁琐、机械的日常排版工作自动化。用VBA扩展功能可以完成各种高级排版功能的软件开发。

参考文献:

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

[2]Guy Hart-Davis.VBA从入门到精通[M].第二版.北京:电子工业出版社,2008.

[3]李政,海英梁,李昊.VBA應用基础与实例教程[M].北京:国防工业出版社,2009.

[4]卓宗雄.学用VBA提高Office效率[M].北京:人民邮电出版社,1996.

[5]徐国平.VBA中文版程序设计与应用[M].北京.清华大学出版社,1998.

|编辑 温雪莲