office宏操作-所有表格统一修改

最近在做一些文档方面的工作,所以更新的比较少,这次记录一下文档中表格处理的问题。

在工作过程中遇到了一个400页的文档,文档中有大量的表格,也有其他描述性文字等。

而表格是从不同的文档中粘贴过来的,因此格式会略有差异,字体也不尽相同。

因此需要想一种办法将所有的表格统一格式与字体。

当然一个一个弄肯定也可以,不过要耗费大量的时间,这种重复性工作为什么要让我们人来做呢?

所以就需要用到office的高级功能—宏。

宏是微软公司为其OFFICE软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。
作为一个研究生,到今天才发现office有这么强大的功能,实在是惭愧啊

所以如何统一修改表格的格式呢?

在视图中找到宏,然后点击查看宏,或者直接Alt+F8也可以直接打开

打开后,这里面的其实就是office预定义的一些宏,用以完成一系列特定的功能。

这里的功能可以从名字看出来用途,但是没有我们需要的,所以我们需要新建一个宏。

以【选中文档中的所有表格】这一功能为例,我们在宏名输入SelectAllTables,然后点击创建。

然后输入下面的代码,点击绿色的小三角,等待片刻

返回原文档,看看所有的表格是否都被选中了?

然后我们可以对所有的表格进行操作,如设置表格中的字体、字号、对齐方式,这样可能在5分钟之内完成了我们一天也完不成的机械工作。

其实还有一种简便方法,直接Alt+F11,直接就出来VB编辑器

然后双击ThisDocument,在框中输入代码即可自动创建相应宏。

注意保存时会弹出一个对话框如下

如果只是用宏处理一下问题,不想改变原文档的话,就选是,VBA工程不会保存到原文档中。

如果想要把原文档变成可以拥有某种功能的文档,每次打开时自动调整,就点否,会提示你另存为一个新的启用宏的文档。

最后放上两段代码,是我最近用的比较多的两个代码

选中所有表格:
Sub SelectAllTables()

    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
所有表格居中
Private Sub Document_Open()
Application.Browser.Target = wdBrowseTable

 

For i = 1 To ActiveDocument.Tables.Count

 

    ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitContent) '根据内容自动调整表格

 

    ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitWindow) '根据窗口自动调整表格

    

    ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '水平居中

    

    ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdCellAlignVerticalCenter '垂直居中

    

Next i
End Sub

点赞
  1. 123456说道:
    Google Chrome Windows 7

    very well good mark!

发表评论

[2;3Rer>