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() Dim oDoc As Document Set oDoc = Word.ActiveDocument Dim oTable As Table For Each oTable In oDoc.Tables oTable.AutoFitBehavior (wdAutoFitWindow) NextEnd Sub
在代码窗格中按下F5运行上述代码,整个文档的所有表格就都根据窗口自动调整表格了。
这就是word vba的学习路径,先用录制宏找到关键的操作的代码,然后了解清楚对象之间的层级关系,其余的就是vba基础知识的拼凑。