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

您所在的位置:网站首页 word里面作文格子怎么增加文字颜色 在Word中使用VBA宏自动生成试卷的作文格子

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

2024-07-14 06:17| 来源: 网络整理| 查看: 265

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

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

  在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 MeEnd Sub

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

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

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

  知识扩展:

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

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

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

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3