编写word宏代码步骤
点击“视图” - “宏” 。
点击“录制宏”,填写宏名称(即函数名),选择保存位置,确定后,鼠标会变成录像带,再进行需要的操作后,点击停止录制,即完成操作录制。
点击“查看宏”,后可以看到录制后的宏名称,点击编辑可看到录制的代码也可修改代码。 小妙招:可以通过录制宏,查看相关操作的代码(比如设置列宽时,不知道对应的列宽宏代码,可以先录制一个有设置列宽的宏,再打开查看)。
点击“查看宏” ,选择对应函数名,点击“运行”,就会进行代码运行。
几个宏代码
1. 选中word文档中的所有表格
Sub SelectAllTable()
Dim tempTable As Table
Application.ScreenUpdating = False
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
MsgBox "文档已保护,此时不能选中多个表格!!"
Exit Sub
End If
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
For Each tempTable In ActiveDocument.Tables
tempTable.Range.Editors.Add wdEditorEveryone
Next
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating = True
End Sub
效果:
2. 表格自动对齐窗口
Sub TableAutoDocument()
Dim tempTable As Table
Application.ScreenUpdating = False
For Each oTable In ActiveDocument.Tables
oTable.AutoFitBehavior (wdAutoFitWindow)
Next
MsgBox "完成!!"
Application.ScreenUpdating = True
End Sub
效果:所有表格自动对齐窗口
弹出框效果:
oTable.AutoFitBehavior (wdAutoFitWindow)
oTable.Style = “网格型”
MsgBox “完成!!”
3.使所有表格第一列内容居中
Sub oneColCenter()
Dim Ta As Table
For Each Ta In ActiveDocument.Tables
Ta.Columns(1).Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next
End Sub
效果:所有表格第一列居中(尝试中:是第二个表格显示会有问题,但已经居中),并且光标选中为最后一个表格
Ta.Columns(1).Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
相当于:
4.选中表格第一列(有框)
Sub selectOneCol()
Dim Ta As Table
For Each Ta In ActiveDocument.Tables
Ta.Columns(1).Select
Selection.Editors.Add (wdEditorCurrent)
Next
End Sub
效果:
4.统一所有表格列宽格式(设置表格指定列宽)
Sub modifyColWidth()
Dim T As Table
For Each T In ActiveDocument.Tables
T.Columns(1).PreferredWidth = CentimetersToPoints(0.7)
T.Columns(2).PreferredWidth = CentimetersToPoints(3.7)
T.Columns(3).PreferredWidth = CentimetersToPoints(3.7)
T.Columns(4).PreferredWidth = CentimetersToPoints(3.7)
T.Columns(5).PreferredWidth = CentimetersToPoints(1.5)
T.Columns(6).PreferredWidth = CentimetersToPoints(1.5)
Next
End Sub
效果:表格列宽按照代码中的数据设置
相当于设置表格指定列宽:
注意点:统一调整列宽时,所有表格列数相同
|