vba对象模型

一,概述

对象(object)是一些相关的变量和方法的软件集。VBA是一种面向对象的编程语言。对象是Visual Basic的结构基础,VBA应用程序就是由许多对象组成。VBA对象模型就是应用程序对象布局的层次,因为一些对象包含在其他对象中,这就决定了其外观显示为树状或者为层次结构。

对象可分为集合对象和独立对象两种。独立对象代表一个Word 元素,如文档、段落、书签或单独的字符。集合也是一个对象,该对象包含多个其他对象,通常这些对象属于相同的类型;例如,一个集合对象中可包含文档中的所有书签对象。修改与对象相关的方法或属性就可以定制对象,也可修改整个的对象集合。

VBA对象模型把后台复杂的代码和操作封装在易于使用的对象、方法、属性和事件中,这样开发者只需要面对相对简单和直观的对象语法。提高了应用程序的简单性和可重复利用性。

二, Microsoft Office对象模型

VBA将Microsoft Office中的每一个应用程序都看成一个对象。每个应用程序都由各自的Application对象代表。

1,在Word中,Application对象中包容了Word的菜单栏、工具栏、Word命令等的相应对象,以及文档对象等等。

2,Excel对象模型: 在Excel中, Application对象中包容了Excel的菜单栏、工具栏等的相应对象,以及工作表对象和图表对象等等。

3,在Access 中,Application对象中包容了Access的菜单栏、工具栏等的相应对象,以及报表对象和窗体对象等等。

4,在Power Point中,Application对象中包容了PowerPoint的菜单栏、工具栏等的相应对象,以及演示文档对象等等。

三,VBA对象模型基础语法

1,属性:属性是对象的一种特性或该对象行为的一个方面。例如,文档属性包含其名称、内容、保存状态以及是否启用修订。若要更改一个对象的特征,可以修改其属性值。

设置/修改对象属性的值:<object>.<property> = <value> CustFrm.Caption = CustomerForm 访问/获取对象属性的值:<variable> = <object>.<property> Dim var As Variant Var = CustFrm.Caption

2,方法:方法是对象可以执行的动作。例如,只要文档可以打印,Document 对象就具有PrintOut方法。方法通常带有参数,以限定执行动作的方式。如果对象共享共同的方法,则可以操作整个对象集合。

引用对象方法:<object>.<methond> [<argument list>] ActiveDocument.CheckGrammar Documents.Open FileName := "c:\Report.doc"

3,事件:VBA效力于事件驱动的编程模型。程序是为响应事件而执行的。事件是一个对象可以辨认的动作,像单击鼠标或按下某键等,并且可以写某些代码针对此述动作来做响应。事件可以由系统触发,也可以由用户做动作或程序代码的结果可能导致事件的发生。

4,使用对象变量: 在进行程序设计时,采用这样的原则:如果需要输入同样的对象的名字全称两次以上,就创建一个对象变量以节省输入时间。

把对象赋给变量: Set <variable> = <object>

Dim DocAdd As Object Set DocAdd = Documents.Add Dim DocAdd = Nothing '释放内存

5,使用集合对象:在大多数情况下,集合都是复数形式的单词。(Excel没有Ranges对象,可以添加一个这样的对象。但是不能添加更多的Ranges,因为Excel已经做了定义和限制。)Add方法可以添加集合项目。Count属性可以表示集合中元素的数目。

四,VBE中的对象工具和选项

A, 对象浏览器:View视图 – > Object Brower 对象浏览器

B, 在线帮助Online Help: VBE – > Help – > MicroSoft Visual Basic Help / 或按F1键

C, List Properties/methods(列表属性/方法)选项: VBE – > Edit 编辑 – >List Properties/methods(列表属性/方法)选项

D,使用对象库: Tools 工具 – > References 引用 – > 选择要添加的库

参考:

VBA集合对象的安全包装http://thesource.ofallevil.com/china/MSDN/library/archives/technic/develop/vb/0125d.asp