基于VBA组卷中自动排版的实现

文章作者 100test 发表时间 2011:08:01 11:33:14
来源 100Test.Com百考试题网


导读:建立完善的题库是课程建设的一项重要工作,当数据库的形式进行题库管理,通过编写抽题程序,在分类明确、题量丰富的题库支持下,实现自动组卷并非难事。试卷一般都采用Word文档,若采用VBA编程,要用程序将试题写入到Word文档,可以通过引用 Microsoft Word 9.0 Object Library中的相关对象来实现:图片、图形、文本框及艺术字等可利用Shapes集合对象的相应方法加入到文档中!   一、引言
  建立完善的题库是课程建设的一项重要工作,当数据库的形式进行题库管理,通过编写抽题程序,在分类明确、题量丰富的题库支持下,实现自动组卷并非难事。试卷一般都采用Word文档,若采用VBA编程,要用程序将试题写入到Word文档,可以通过引用 Microsoft Word 9.0 Object Library中的相关对象来实现:图片、图形、文本框及艺术字等可利用Shapes集合对象的相应方法加入到文档中;表格也可以通过Tables集合对象的Add 方法加入,其大小、位置等排版信息都可以以参数的形式传入;而文字部分的内容也能以字符串的形式通过调用Content对象的InsertAfter方法插入,排版时对其字型、字体、字号及段落格式则可以利用Font对象及Paragraph对象的属性或方式进行设置。
  选择题是各类试卷中经常出现的题型,而它的排版有其特殊性,因为选择题的四个选项根据其长度有可能排成四段(行),也可能排成两行,每行两个选项,且它对段落缩进及上、下行中选项的对齐等都有一定的要求。
  这里要解决的几个问题是:
  1.题干部分的题号对齐,尤其是一位数题号与两位数题号(如第9题与第10题);前、后题题干内容的第一个字符对齐;题干部分作为段落要采用悬挂缩进、且缩进量应合适。
  2.若选项由四段(行)构成,则每段应有左缩进、缩进量与题干部分的悬挂缩进量相同,同时,选项内容的长度也有可以超过一行(如第10题中的选项C),所以对选项也要设置悬挂缩进、且缩进量应合适。
  3.若选项由两行构成(如第11题中的四个选项),则上一行的选项C与下一行的选项D应对齐。
  二、定义选择题的数据结构
  程序设计中为了便于将选择题作为函数的参数传递,应定义选择题的数据类型的结构,选择题的结构通常由题干及四个选项构成,具体定义如下:
  Public Type Choice
  Sentence As String 题干内容,不包括题号
  ChoiceA As String   选项A的内容
  ChoiceB As String   选项B的内容
  ChoiceC As String   选项C的内容
  ChoiceD As String   选项D的内容
  End Type
  三、页面设置与段落格式
  首先进行页面设置,页面上边距、下边距、左边距、右边距分别设为1英寸、1英寸、1.25英寸、1.25英寸, 默认制表位长度为0.33英寸。
  With ActiveDocument.PageSetup
  .TopMargin = InchesToPoints(1)
  .BottomMargin = InchesToPoints(1)
  .LeftMargin = InchesToPoints(1.25)
  .RightMargin = InchesToPoints(1.25)
  End With
  ActiveDocument.DefaultTabStop = InchesToPoints(0.33)
  为了对题干部分进行排版,先自定义一个过程insTabIndent,其功能是根据第一个参数str1传入的题干内容及第二个参数Num传入的本题题号,在题干内容前加上题号,若Num为0,则表示不加题号;在题号后设置一个制表位,使前、后题的题干内容的第一个字符对齐;对题干所在段落设置悬挂缩进一个制表。
  Private Sub insTabIndent(str1 As String, Num As Integer)
  Dim s As String
  If Num

相关文章


2010年计算机等级考试二级VB模拟试题及参考答案(11)
把图片框的完整内容复制到剪贴板
vb应用程序调用vc的动态库实现联合调试
VB6把彩色图片变成灰阶的方法
基于VBA组卷中自动排版的实现
VB6的后期绑定和前期绑定
处理字符串中的字符
VB动态调用外部函数的方法
2011年计算机二级VFP上机考试冲刺模拟试题(75)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛