如何用vba批量调整word表格的大小?

Word 由于一般人都只用来打打字,所以用到VBA的场景不多。
但是对于写手、科研工作者,经常要用Word写文章,遇到一个长篇文章,需要批量调整格式内容时,VBA就有用武之地了。
比如最近拿到了一个91页Word,里面有不少表格,具体数目不详,每个表格的宽度都不一样,有些宽,有些窄,如下面所示

 

现在要把所有这些表格批量调整成统一的大小,如果手动,有91页,调整完估计要花不少时间。

 

这时候我们可以选择用vba来实现,但凡批量重复的事情交给vba实现是不二选择。

 

首先我们可以先对单一的表格录制宏

 

 

然后找到录制的宏代码

 

Sub 宏1()

‘ 宏1 宏


Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
End Sub

 

发现要把word表格调整成和窗口一样,代码是

 

Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)

 

最后需要了解下word中的对象层级关系

 

整个word文档对象是Document,所有的word表格隶属于Tables集合对象,Tables集合对象又隶属于Document对象。

 

有了上述的层级关系,我们就可以构建如下的vba代码:

 

Sub 宏1()

‘ 宏1 宏

Dim oDoc As Document
Set oDoc = Word.ActiveDocument
Dim oTable As Table
For Each oTable In oDoc.Tables
oTable.AutoFitBehavior (wdAutoFitWindow)
Next
End Sub

 

在代码窗格中按下F5运行上述代码,整个文档的所有表格就都根据窗口自动调整表格了。

 

这就是word vba的学习路径,先用录制宏找到关键的操作的代码,然后了解清楚对象之间的层级关系,其余的就是vba基础知识的拼凑。

 

       

发表评论