一个Word文档中同类元素的格式是否具有统一的风格,可以体现出文档编辑者的专业水平(装逼姿势的优美程度),同时也可以使文档显得更整洁,阅读起来更舒适。对于一个个人编辑的短文档,要做到这一点比较容易,但是对于多人协作编辑的文档,或者从网上下载与拷贝内容拼凑的文档,或者长文档编辑过程中因为疏忽忘记统一风格的文档,后期要将同类元素格式统一时,当然可以一个元素一个元素来操作,但一只这样亮翅膀的雄鸟就算自己不觉得厌烦,却无法吸引雌鸟的目光。要统一修改同类元素的格式,其前提就是要将所有同类元素先全部选择。全部选择同类元素当然可以按住ctrl键再用鼠标一个一个点击相关元素来完成,不过这也没有增加多少吸引力,有吸引力的操作当然是借助VBA一键操作!
VBA中有一个对象叫做“可编辑区域”,我们可以通过如下代码将任意对象(obj)加入“可编辑区域”:
obj.Range.Editors.Add wdEditorEveryone
加入可编辑区域后,通过如下方法即可选择可编辑区域的全部内容:
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
因此,我们可以通过遍历文档中某种同类型元素,利用以上两个步骤一次性完成全部选择。以选择全部表格为例:
Sub SelectAllTables()
Dim aTable As Table
'关闭屏幕滚动,提高代码执行效率
Application.ScreenUpdating = False
'先清空编辑的区域内的对象,以防选择本不想选择但已加入可编辑区域的对象
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
'遍历文档中的表格,将其加入可编辑区域。
'只要是可遍历对象,例如段落、图片等,都可以用类似操作全部加入可编辑对象中
For Each aTable In ActiveDocument.Tables
aTable.Range.Editors.Add wdEditorEveryone
Next
'选中可编辑区域中的所有对象
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
'再次清空可编辑的区域中的对象,以防误操作。这一步只是表示俺是个细心的人
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
'恢复屏幕滚动
Application.ScreenUpdating = True
End Sub
按下执行按钮,你会发现所有表格都已经解除武装,可以任你为所欲为了。
ps:只选择符合某些条件的对象,则可以在遍历对象的代码中增加一些条件判断语句进行过滤。例如只选择红色的字符,就可以在遍历characters对象时判断一下文字颜色是否是红色即可。