Microsoft Visual Basic for Applications (VBA) 是从完整的 Microsoft Visual Basic 语言派生的,它包含在许多产品中。最明显的是,它是所有 Microsoft Office 应用程序以及其他产品(如 Microsoft Visio 和 Great Plains 软件)的主要编程语言。
通过查看帮助文件,通常可以找到为执行某些操作而需要设置哪些引用。对于本章和下一章中的示例来说,一些重要的引用是对其他 Office 应用程序的对象模型的引用。这些引用以下列名称出现在列表中:
Excel_Microsoft Excel 11.0 Object Library
Word_Microsoft Word 11.0 Object Library
要从另一个应用程序访问 Outlook 功能,请设置对 Outlook 对象模型的引用:Outlook_Microsoft Outlook 11.0 Object Library
对于数据访问,使用 ActiveX 数据对象 (ADO) 非常有用:
数据访问_Microsoft ActiveX Data Objects 2.7 Library
可以使用许多 ADO 对象模型;最新的对象模型是 ADO 2.8
声明和实例化对象
要创建对象的实例,应首先使用 Dim 语句来声明对象。该语句可设置该对象类型变量的维数。例如,以下语句可声明一个 Word.Application 类型的新变量:
Dim objWord as Word.Application
在声明某个对象以后,您可以使用 Set 和 New 关键字来创建该对象的实例。您先前声明的变量会指定给该实例,之后您就可以开始使用该实例了:
Set objWord = New Word.Application
现在,您可以通过新定义的实例来访问 Word.Application 对象的所有函数和属性。
完全揭密提示:处置实例
当您创建某个对象(特别是外部应用程序对象)的实例时,请记住在使用完之后处置它。可以通过将对象变量设置为 Nothing 来处置它:
Set objWord = Nothing
当所有的对象引用都超出范围时,VBA 将自动清除并处置它们,但是这通常不会发生。随后会留下没有关联项但仍然占用内存的对象。如果所创建的对象是占用大量内存的大型应用程序(如 Microsoft Word),则这种情况十分槽糕。
属性、方法和事件
属性 是与对象关联的值。对象名称就是属性的一个示例。属性可以是只读的,也可以是读写的。您通常使用属性来告诉某个对象如何表示自身或者如何操作。
方法 与代码中的函数等效,但是它属于特定对象,并且只能通过该对象访问(而不是可通用)。您可以调用对象的方法来执行任务(并可能会返回结果)。方法可以使用参数。事件 由已经实例化的对象使用,以告诉应用程序在正常程序流外部发生的事情。大量 Microsoft Windows 体系结构都基于事件(即,与 Windows 相关的消息)的可用性。