类别是什么?
类别是对象的定义。其中包含对象动作行为的相关信息,包括对象的名称、方法、属性和事件。它实际上不是对象本身,因为它不存在于内存中。当执行的程序代码参考类别时,就在内存中建立类别的新执行个体,即对象。虽然只有一个类别,但可在内存中,从该类别建立多个相同类型的对象。
可以把类别看作「理论上」的对象 — 也就是说,它提供对象的蓝图,但本身在内存中没有实质存在。从这个蓝图可以建立数量不限的对象。每一个从类别建立的对象都有相同的成员:其属性、方法和事件。但各对象都像独立实体一样运作;例如,一个对象的属性可以设定成与其它相同类型对象不同的值。
一个 Microsoft® Visual Basic® for Applications (VBA) 项目可以包含两种不同的类别模块:一种是基本类别模块,没有任何使用者接口与其相关联,另一种是与窗体或其它组件相关联的类别模块。与窗体相关联的类别模块其实与基本类别模块完全一样,但只有相关联的窗体存在于内存中时,它们才存在于内存中。有相关联类别模块之对象的范例是 Userforms、Microsoft® Access 窗体和报表、Microsoft® Word ThisDocument 物件、还有 Microsoft® Excel ThisWorkbook 和 SheetN 物件。
加入类别模块
若要在 Microsoft® Visual Basic® for Applications (VBA) 项目中加入类别模块,请在 Visual Basic 编辑器中的 [插入] 菜单上按一下 [类别模块]。然后在 [属性] 窗口中设定其 Name 属性来命名类别模块。切记类别模块将被视为对象,因此最好使用可提示对象功能的名称。指定给类别模块的名称也将是它显示在对象对象检视器 中 [类别] 清单上的名称。
若已遵循标准模块的命名惯例,在此即可放弃三个字母的前缀。最好是凭直觉来为对象命名。
建立类别的新执行个体
若要在程序代码中使用自订对象,请先建立定义该对象之类别的新执行个体。当您建立类别的新执行个体时,即在内存中建立由类别定义的对象。
您可以从任何类型的模块内部,建立类别的新执行个体。建立 ClassName 类型的对象变量,然后使用 New 关键词,将类别的新执行个体指定给对象变量。
VBA 代码必须存放在某个位置,这个地方就是模块。
有两种基本类型的模块:标准模块 和类模块。
模块:它是作为一个单元保存在一起的 VBA 定义和过程的集合。
类模块 :VBA 允许创建自己的对象,对象的定义包含在类模块中。
当录制宏时如果不存在模块,Excel 将自动创建一个模块。在执行宏时,大部分工 作都集中的模块中。