导航:首页 > 编程知识 > 编程中如何控制行列排版

编程中如何控制行列排版

发布时间:2025-03-22 05:36:48

word中利用VBA编程制作考试用作文稿纸

语文考试中,经常用到作文稿纸,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的稿纸向导或稿纸加载项相比,此程序做出的稿纸显然不适于在文档中直接使用,但在制作作文试卷时优势明显。其一,不受纸型限制;其二,因为是表格,所以能根据需要自由地添加、删除行列,还能在适当位置标注作文所要求的字数。

㈡ word中标签排版怎么排

现在印刷过程很多时候,都需要使用上矩阵排版的效果,而且标签打印软件中,有一个专业的生成矩阵的工具,可以非常简单的实现此效果,那么具体的水平和垂直间距该如何计算比较方便呢?下面我们就来详细看一下。

阅读全文

与编程中如何控制行列排版相关的资料

热点内容
怎么用少儿编程在电脑上制作游戏 浏览:57
一元云购怎么编程 浏览:56
别人的u盘文件可以用吗 浏览:665
微信电脑如何保存视频文件 浏览:658
qq语音游戏声音 浏览:641
w7文件系统损坏怎么办 浏览:267
文件名前设置 浏览:509
office保存文件出错 浏览:589
离型膜厚检测数据结果怎么看 浏览:411
c格式文件打不开是怎么回事 浏览:644
cad2014缺少d3文件 浏览:484
三星微信数据清理了怎么恢复 浏览:277
oppo倒数据用什么软件 浏览:729
销售额数据变动的主要原因是什么 浏览:807
qq设置常用登录地址吗 浏览:765
视频如何添加app画面 浏览:303
ps4全球网络游戏有哪些 浏览:303
vuejs播放音频 浏览:616
停电excel文件打不开怎么办 浏览:285
3d光度学文件在哪里 浏览:614

友情链接