Word中利用VBA编程制作考试用作文稿纸
发布时间:2023-12-07 09:36:20
语文考试中,经常用到作文稿纸,Word中带有稿纸模板,但有诸多限制(如纸型、行列数等相对固定),在试卷排版时颇为不便。经过尝试,笔者找到一种利用Word的VBA编程,通过绘制表格实现考试用作文稿纸的方法。
一、编制程序
1.启动Word,连续点击“工具”,“宏”,“录制新宏...”,在弹出的对话框中填写宏名(此例为“作文稿纸”),选择宏要保存的位置(可以保存在模板中,也可以保存在当前文档中),如图1所示。
2.为了方便操作,可以将此宏以按钮的形式指定在工具栏中。单击“录制宏”对话框中的“工具栏”按钮,在弹出的“自定义”对话框的右侧,选中宏命令“Normal.NewMacros.作文稿纸”,用鼠标将其拖动复制到“常用”工具栏,在其上单击右键,选择相应的命令修改名称,为其编辑一个小图标,结果如图2所示。
3.单击“录制宏”对话框中的“关闭”按钮,屏幕上将出现一个“录制宏”工具栏,单击停止按钮停止录制。
4.依次选择“工具”、“宏”、“宏…”,在对话框中选择宏名“作文稿纸”,单击“编辑”按钮,打开vba编程窗口。录入如下代码:
Sub 作文稿纸()
UserForm1.CommandButton1.Enabled = True
UserForm1.Show
End Sub
5.插入一个窗体UserForm1,在其中插入4个标签,4个文本框,一个按钮。分别设置它们的相关属性,其中,“所需行数”文本框的“text”属性值设为25,“所需列数”文本框的“text”属性值设为20,“行间距”文本框的“text”属性值设为0.5,“首尾空行高度”文本框的“text”属性值设为0.4,如图3所示
6.双击命令按钮CommandButton1,录入以下代码:
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
二、使用
与Word的稿纸向导或稿纸加载项相比,此程序做出的稿纸显然不适于在文档中直接使用,但在制作作文试卷时优势明显。其一,不受纸型限制;其二,因为是表格,所以能根据需要自由地添加、删除行列,还能在适当位置标注作文所要求的字数。
应用前,应先设定好试卷模板,然后进行试验,以找出试卷最适的格子大小和行列数,需要制作稿纸时,可直接在“常用”工具栏上单击“作文稿纸”按钮,也可以连续点击“工具”,“宏”,“宏…”,打开“宏”对话框,在左侧组合框中选择名为“作文稿纸”的宏,然后单击“运行”,即可启动宏程序,在随后出现的“作文稿纸设置”窗口中,根据需要修改默认设置,最后,单击“确定”按钮,程序将自动绘制作文稿纸表格,如果稿纸超出一页(或一栏),选择稿纸中部的行删除即可。下面图4是在A3纸左右两栏中分别制作的20×16、20×10稿纸。
三、导出导入
在VBA编程窗口中,分别选择工程资源管理器中的UserForm1窗体和NewMacros模块,导出UserForm1.frm、UserForm1.frx和NewMacros.bas文件。如图5。
需要在其他电脑中使用这个程序时,把备份拷贝过来,启动VBA编程窗口,通过“文件”、“导入文件”将UserForm1.frm、和NewMacros.bas导入,在Word中就使用了。


猜你喜欢
- 相信很多用户和小编一样在使用Win10系统的电脑时经常会遇到各种各样的情况,其中就有鼠标左键双击并不是选中打开,而是出现了属性窗口,因此我们
- 项目符号,简单来说,就是在文本前添加的,用以强调效果的点或者是其他的符号,在Word文档中,我们可以将喜欢的任意符号,图片等设置为项目符号。
- 在我们平时使用Excel表格办公时,经常会用到一些特殊的功能。其中能够自动匹配工作时间的技巧还是非常实用的。那么它是如何操作的呢?下面我们就
- 由于系统架构变化.NET 3.5离线安装包无法直接安装,需联网下载数据包安装,下面是具体的操作步骤,需要的朋友不要错过知识点分析:默认情况下
- Win11怎么看cpu几核几线程?我们使用电脑应该大概清楚自己的电脑是几核几线程呢?那么要怎么查看呢?下面小编就为你带来了Win11查看cp
- Win10系统相对于之前经典的版本,增加了许多可以进行自定义的功能,就像在Win10系统中可以进行开始菜单的透明度调整,我们可以根据自己的喜
- Excel中具体该如何在方框里打钩呢?下面是小编带来的关于excel中在方框里打钩的方法,希望阅读过后对你有所启发!excel中在方框里打钩
- 现在很多电脑都带有无线网卡,如果没有安装无线网卡驱动的话是无法启用的。那要如何安装这个无线网卡驱动呢?下面小编就教教大家Win10添加无线网
- Win7电脑防火墙在哪里设置?对于电脑操作不是很熟悉的小伙伴,这个问题十分困扰,想了解具体操作的小伙伴下面小编就给大家带来具体地操作教程,希
- 火狐浏览器怎么设置自动刷新?火狐浏览器为用户提供最新的搜索、网址导航、新闻资讯、网络购物等服务。还有对用户的隐私保护,个性化设置、更快的上网
- 我们应该如何把表中表转化成普通区域,接下来小编就带大家看看吧!我们要将下表中的表中表转化成普通区域,首先我们要先选中这个表格:
- 你知道在wps文字中怎样添加批注吗?其实设置方法不难啊,下面就让小编告诉你wps文字添加批注的方法,欢迎大家来到学习。wps文字添加批注的方
- 显示器变色有哪些原因?如果在未经用户校调的情况下就自动变色,那一定是显卡或者显卡驱动、软件不兼容等问题,而经过显示器按钮校调过,则只需要还原
- win7系统的两台电脑怎么高速传输数据?由于传输大文件的需要,用U来转移,明显是不可取的,所以让我们来看一下如何用网线来传输数据,需要的朋友
- 目前Win7和Win10系统都是使用最多的,有很多Win7的用户已经升级到Win10了,有的用户还在纠结有没有必要升级,其实从2020年1月
- Excel中的对号该如何输入呢?接下来是小编为大家带来的excel2003输入对号的教程,供大家参考。excel2003输入对号的教程:输入
- 很多人不知道怎么安装语言包,同时还有一些人安装语言包的时候出现了乱码,下面为大家介绍下Win10系统10125版中文语言包的安装教程和出现乱
- Win10预览版17110/17112应用商店图标消失怎么解决?前不久,微软推送了Win10预览版17110/17112,但是一些用户升级到
- WPS文字文档中,如何给指定的文字添加边框效果?1、 点击菜单栏中的视图--工具栏--其他格式,调出其他格式工具栏。2、 按下刚刚出来的工具
- 现在PC上最好用的中文输入法要算搜狗输入法了,可是搜狗输入法只有Windows版没有苹果电脑Mac OS X系统版。还好Mac上也有一个比较