Dzwebs.Net

撰写电脑技术杂文十余年

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

Admin | 2008-4-17 20:14:14 | 被阅次数 | 23651

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  学生考试使用的语文试卷,都有作文格子,每个人都应该见过!

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

  在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窗口中执行“文件”→“导出文件”;选择路径保存即可!如下图!


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

  以上代码参考网上资源总结而成,版权仍归原作者所有!


该杂文来自: Word杂文

上一篇:在Word中如何制作出自适应页面宽度的整行横线

下一篇:在Word中如何(划)画线、画图及设置图形的颜色

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计