VBA 对 Office 套件中的所有应用程序都是通用的,这意味着我们可以在 Excel 中使用 VBA 来操作 Word、PowerPoint、Outlook、Access 等。有两种方式能够创建访问其他的 Office 应用程序的连接,一种称为前期绑定,另一种称为后期绑定。
前期绑定
所谓“前期绑定”,就是首先在 VBA 工程中建立对相关外部程序的类型库的引用,然后再编写操作该应用程序的代码。操作步骤如下:
- 在 Excel 中按 Alt+F11 打开 VBE。
- 在 VBE 中,单击【工具】菜单,选择【引用】。
- 在【引用 VBAProject】对话框中,在【可使用的引用】列表里找到并选中需要引用的库,单击【确定】。如下图选择 【Microsoft PowerPoint 16 Object Library】,即可以在 Excel 中操作 PowerPoint。
在建立对 PowerPoint 应用程序类型库的引用后,就可以在【对象浏览器】(快捷键:F2)窗口左上角的组合框中选择 PowerPoint 选项,在下方的“类”和“成员”列表中就会列出 PowerPoint 对象所有的属性、方法和事件。
使用前期绑定的示例代码:
'将变量 pptApp 直接声明为 PowerPoint.Application 类型
Dim pptApp As PowerPoint.Application
'使用 New 关键字创建一个新的 PowerPoint 实例。
Set pptApp = New PowerPoint.Application
如果你希望使用VBA 代码来自动完成前期绑定,请参考:使用 VBA 自动添加前期引用。
后期绑定
我们在编程控制其他的应用程序对象之前,需要先创建代表该应用程序及其相关对象的变量,再使用 CreateObject 方法创建并返回对其他应用程序的引用,并将引用的结果赋值给对象变量,VBA 引擎在运行时才能连接到正确的应用程序,这种引用方式就叫“后期绑定”。
使用后期绑定的示例代码:
'将变量 pptApp 声明为 Object 类型(也可以声明为 Variant 类型)
Dim pptApp As Object
'使用 CreateObject 方法创建并返回对 PowerPoint 应用程序的引用,
'并将引用的结果赋值给对象变量 pptApp
Set pptApp = CreateObject("PowerPoint.Application")
提示
不管是使用前期绑定还是后期绑定,在结束对其他应用程序的访问时,建议关闭对该应用程序的连接并将对象变量设置为 Nothing
,以释放连接的外部对象所占用的资源。如:Set pptApp = Nothing
优缺点
前期绑定的优点
- 代码运行的速度会更快。
- 自动完成和动态帮助。能够在输入代码时出现相关的自动提示信息,而且能够在ˉ“对象浏览器”中查询所需应用程序对象的属性和方法,并且还可以直接使用该应用程序对象中的内置常量。
后期绑定的优点
使用后期绑定的优点是能够使用代码检测所需的类型库是否存在或丢失,并自动地连接到类型库的适当版本,所有兼容性最强。