Word VBA:批量转PDF且保留书签
一、前提说明
1.讨论范围
这里只讨论通过Word软件自带的方法完成生成PDF时创建PDF标签的方法,外部插件不在探讨和研究范围
2.示例文档说明

示例文档里面有两处标题和一处书签。
二、Word自带转PDF方法
1.另存
点击【文件】-【另存为】,格式选【PDF】

可以看到在保存选项中,有根据标题和Word书签创建书PDF签选项的选项。
2.打印
点击【文件】-【打印】,选择虚拟打印机最好的微软自带的

可以看到,在【打印机属性】中是没有PDF标签的设置选项的
3.导出
(1)点击【文件】-【导出】-【创建PDF/XPS文档】

(2)点击上图右侧【创建PDF/XPS文档】,在弹出的导出按钮中,也有【选项】按钮,点击可以在对话框中设置导出PDF时的标签选项

综上测试与观察,得出结论:
手动方式中,可以通过另存和导出两种方式,完成Word转PDF时根据Word标题或书签创建PDF标签的任务。
三、VBA代码另存和导出和手动的差别
注:这里以另存激活文档(当前正打开的文档)为PDF举例
1.另存
另存至少需要写两个参数:文件名和格式
但是,Word VBA另存的方法中是没有创建PDF书签的参数的,通过官方文档也可以证实:



此外,我们打开一个用上述这段代码另存的一个文件也可以再次证实上述结论:

至此,可以总结:
如果需要用VBA批量操作,我们就只能通过【导出】的方式达到生成PDF同时创建PDF书签的要求。
2.导出
(1)方法
我们可以通过【ExportAsFixedFormat】或者【ExportAsFixedFormat2】方法进行导出,二者的区别中此处可以不用管。
(2)参数
通过官方文档,可以看到所有参数


这里,前两个参数是导出的文件路径和文件格式,必须要写。

这里,剪头标记的参数【CreateBookmarks】,通过说明可以看到就是选择生成PDF时书签的参数。
具体怎么设置呢?点击紫色文字

继续看一下官方文档:

可以清楚看到,三类书签选项的枚举常量名称、值及其说明,此参数根据需要选择即可。
(3)示例代码
A.根据Word标题创建PDF书签
我们将文档导出到前面演示相同的位置,格式为PDF,书签参数选择上图中的第1种
我们看看生成的PDF文件

可以看到,PDF中只有Word文档中两处标题对应的书签。
B.根据Word书签创建PDF书签
我们将文档导出到前面演示相同的位置,格式为PDF,书签参数选择上图中的第3种
我们看到生成的PDF书签效果:

可以看到只有Word书签的内容,和官方说明文档完全一样,没有问题。
四、批量操作代码
1.示例代码
2.注意
会对所选主文件夹及其各级文件夹下所有Word文件执行导出操作。(注释也有说明)