VBA06-组件
一、组件的定义
在VBA(Visual Basic for Applications)中,代码通常是在不同的组件中编写的,这些组件包括模块(Modules)、工作表对象(Sheet Objects)和ThisWorkbook对象(代表当前工作簿的特定代码区域)。
每个组件都有其特定的用途和适用场景。
二、组件介绍
2-1、模块
- 模块是VBA中最常用的代码编写区域。
- 你可以在模块中编写通用的过程(Sub)和函数(Function),这些代码可以被工作簿中的任何工作表或其他模块调用。
- 模块非常适合存放那些不特定于某个工作表的代码。
2-2、工作表对象(Sheet Objects)
- 每个Excel工作表都有一个与之关联的工作表对象,你可以在这个对象的事件和代码区域中编写代码。
- 工作表对象中的代码通常用于处理特定于该工作表的事件(如单元格更改、选择变化等)和逻辑。
- 例如,你可以在Sheet1的代码区域中编写一个过程,当某个单元格的值改变时自动执行一些操作。
- 工作表对象中的代码通常通过
Sheet1
、Sheet2
等名称访问(假设这些名称是默认或未更改的)。
2-3、ThisWorkbook对象
- ThisWorkbook代表包含VBA代码的工作簿本身。
- 你可以在ThisWorkbook的代码区域中编写与工作簿级别相关的事件和代码,如打开工作簿时执行的操作、关闭工作簿前的保存检查等。
- ThisWorkbook中的代码特别适用于那些需要在整个工作簿范围内执行的操作,如检查工作簿中所有工作表的某些条件。
- 与ActiveWorkbook不同,ActiveWorkbook代表当前活动的工作簿(可能是用户正在查看的任何工作簿),而ThisWorkbook始终指向包含代码的那个工作簿。
2-4、类模块
类模块是用于编写自定义类的代码模块。类模块是实现面向对象编程(OOP)的关键组成部分,允许开发者创建具有特定属性和方法的自定义对象。
有点类似于java的类。
类的实例化
- 类本身并不占用内存,只有当创建类的实例(对象)时,才会在内存中分配空间。
- 在VBA代码中,可以使用
Dim
语句创建类的实例,使用new关键字,并通过实例访问类的属性和方法。
Sub TestCar()
Dim myCar As New Car ' 创建Car对象的实例
myCar.Brand = "Toyota" ' 设置汽车品牌
myCar.Color = "Red" ' 设置汽车颜色
myCar.PrintInfo ' 输出车辆信息
End Sub
三、小结
- 模块适合存放通用代码;
- 工作表对象适合存放特定于某个工作表的代码,多用于检查;
- ThisWorkbook适合存放与工作簿级别相关的事件和代码。