VBA在Word中的应用

更新时间:2024-02-07 作者:用户投稿原创标记本站原创 点赞:4867 浏览:18952

摘 要:教师一般应用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扩展功能可以完成各种高级排版功能的软件开发.

相关论文范文