编写word宏代码步骤
点击“视图” - “宏” 。
点击“录制宏”,填写宏名称(即函数名),选择保存位置,确定后,鼠标会变成录像带,再进行需要的操作后,点击停止录制,即完成操作录制。
点击“查看宏”,后可以看到录制后的宏名称,点击编辑可看到录制的代码也可修改代码。
小妙招:可以通过录制宏,查看相关操作的代码(比如设置列宽时,不知道对应的列宽宏代码,可以先录制一个有设置列宽的宏,再打开查看)。
点击“查看宏” ,选择对应函数名,点击“运行”,就会进行代码运行。
几个宏代码
1. 选中word文档中的所有表格
Sub SelectAllTable()Dim tempTable As TableApplication.ScreenUpdating = False'判断文档是否被保护'If ActiveDocument.ProtectionType = wdAllowOnlyFormFields ThenMsgBox "文档已保护,此时不能选中多个表格!!"Exit SubEnd If'删除所有可编辑的区域ActiveDocument.DeleteAllEditableRanges wdEditorEveryone'添加可编辑区域For Each tempTable In ActiveDocument.TablestempTable.Range.Editors.Add wdEditorEveryoneNext'选中所有可编辑区域ActiveDocument.SelectAllEditableRanges wdEditorEveryone'删除所有可编辑的区域ActiveDocument.DeleteAllEditableRanges wdEditorEveryoneApplication.ScreenUpdating = TrueEnd Sub
效果:
2. 表格自动对齐窗口
Sub TableAutoDocument()Dim tempTable As TableApplication.ScreenUpdating = False For Each oTable In ActiveDocument.Tables oTable.AutoFitBehavior (wdAutoFitWindow) NextMsgBox "完成!!"Application.ScreenUpdating = TrueEnd Sub
效果:所有表格自动对齐窗口
弹出框效果:
- 根据窗口调整表格
oTable.AutoFitBehavior (wdAutoFitWindow)
- 设置表格的样式
oTable.Style = “网格型”
- 弹出对话框,显示“完成!!”
MsgBox “完成!!”
3.使所有表格第一列内容居中
Sub oneColCenter()Dim Ta As TableFor Each Ta In ActiveDocument.Tables '遍历每个表格Ta.Columns(1).Select '选择第1列,选其他列改括号内的数字即可Selection.ParagraphFormat.Alignment = wdAlignParagraphCenterNextEnd Sub
效果:所有表格第一列居中(尝试中:是第二个表格显示会有问题,但已经居中),并且光标选中为最后一个表格
- 选中表格第一列
Ta.Columns(1).Select
- 文字内容居中
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
相当于:
4.选中表格第一列(有框)
Sub selectOneCol()Dim Ta As TableFor Each Ta In ActiveDocument.Tables '遍历每个表格Ta.Columns(1).Select '选择第1列,选其他列改括号内的数字即可Selection.Editors.Add (wdEditorCurrent) ' 将所选内容添加到强加区域中NextEnd Sub
效果:
4.统一所有表格列宽格式(设置表格指定列宽)
Sub modifyColWidth()Dim T As Table For Each T In ActiveDocument.TablesT.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)NextEnd Sub
效果:表格列宽按照代码中的数据设置
相当于设置表格指定列宽:
注意点:统一调整列宽时,所有表格列数相同