学生考试使用的语文试卷,都有作文格子,每个人都应该见过!
如果您是教师,尤其是语文教师,倘若您被安排出语文试卷,总免不了遇到作文格子的制作!
在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窗口中执行“文件”→“导出文件”;选择路径保存即可!如下图!
以后若要使用,那么,执行“文件”→“导入文件”即可!
以上代码参考网上资源总结而成,版权仍归原作者所有!