返回首页
当前位置: 主页 > Word教程 > Word2007教程 >

Word中使用VBA宏自动生成试卷的作文格子

时间:2013-01-31 23:29来源:Office教程学习网 www.office68.com编辑:麦田守望者

如果您是教师,尤其是语文教师,倘若您被安排出语文试卷,总免不了遇到作文格子的制作!

  在WORD里面,作文格子完全可以使用表格来制作;

  但,那不是一件很轻松的事情,因为涉及到多行多列,并且,空行与单元格行之间的排版都相当讲究,单靠手工来完成,一不小心,容易造成表格排版不对称或不整洁等问题!

  本文介绍一种一劳永逸的方法,让您轻松实现试卷作文格子的制作,仅需几秒钟即可完成!

  一:打开WORD软件,按组合键Alt F11打开Microsoft Visual Basic窗口,如下图


  在上图中,执行“插入”→“用户窗体”;

  这样就建立了一个用户窗体,然后在窗体中添加四个文本框,四个标签,一个按钮,如下图


  标签对应着文本框,标签文字按顺序分别是“行数”,“列数”,“行间距”和“首尾空行高度”;将文本框中的内容分别改为“25”,“20”,“0.5”和“0.4”;按钮文字改为“生成作文格子”;

  好了,窗体的控件建立好之后,直接双击按钮进入代码编辑模式,输入如下的代码:

Private Sub CommandButton1_Click()
Dim n As Integer '定义一个变量为整数型
n = 1
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=Val(TextBox1.Text) * 2 1, NumColumns _
:=Val(TextBox2.Text), DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
Selection.EndKey Unit:=wdRow, Extend:=True
Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
Selection.Tables(1).Rows.HeightRule = wdRowHeightExactly
'设定表格行高为固定值
Selection.Tables(1).Rows.Height = CentimetersToPoints(Val(TextBox3.Text))
'设置表格行高为设置值,作为行间距
Selection.Tables(1).Rows(1).Height = CentimetersToPoints(Val(TextBox4.Text))
'设置第一行行高为设置值
Do While n &< Val(TextBox1.Text) 1
Selection.EndKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=2
'将插入点移至下一行
Selection.Tables(1).Rows(2 * n).Height = Selection.Tables(1).Columns(1).PreferredWidth
'设行高等于列宽
Selection.EndKey Unit:=wdRow, Extend:=True
Selection.EndKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=2
'将插入点移至下一行
Selection.EndKey Unit:=wdRow, Extend:=True
Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
'去除此行的内部框线,只余边框
n = n 1
Loop
Selection.Tables(1).Rows(Val(TextBox1.Text) * 2 1).Height = CentimetersToPoints(Val(TextBox4.Text))
'设置末行高为设置值
Selection.EndKey Unit:=wdRow, Extend:=True
Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
Selection.Tables(1).Rows.Alignment = wdAlignRowCenter
'表格居中
With Selection.Tables(1)
.Borders(wdBorderLeft).LineWidth = wdLineWidth150pt
.Borders(wdBorderRight).LineWidth = wdLineWidth150pt
.Borders(wdBorderTop).LineWidth = wdLineWidth150pt
.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt
'设定表格边框为粗线
End With
Selection.EndKey Unit:=wdLine
Unload Me
End Sub

  退出代码编辑模式或者干脆不退出,在窗口中找到对应的运行按钮或按F5直接运行以上代码,这个时候,少安毋躁,等待几秒钟,自动会在WORD窗口中生成作文格子!

  程序执行成功之后,切换到WORD窗口,即可看到效果了,如下图!


  上图的纸张为A4,阁下亦可自行修改加以应用!

  知识扩展:

  上面生成的是25行20列的表格,其实,在程序运行的过程中,可以修改行、列数及行间距等参数,以生成更符合您的需要的表格!

  上述的代码,可以进行保存,以备不时之需;

  在VB窗口中执行“文件”→“导出文件”;选择路径保存即可!如下图!


  以后若要使用,那么,执行“文件”→“导入文件”即可!

------分隔线----------------------------
标签(Tag):word技巧 word word2010 word2007 word2003 word教程 word2010教程 word2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣