创建对象变量

您可以将对象变量视为与其引用的对象完全相同。 您可以设置或返回对象的属性或使用其任何方法

创建对象变量

  1. 声明对象变量。

  2. 将对象变量分配给对象。

声明对象变量

使用 Dim 语句或其他声明语句之一 (PublicPrivateStatic) 来声明对象变量。 引用对象的 变量 必须是 VariantObject 或特定类型的对象。 例如,以下声明是有效的:

' Declare MyObject as Variant data type. 
Dim MyObject 
' Declare MyObject as Object data type. 
Dim MyObject As Object 
' Declare MyObject as Font type. 
Dim MyObject As Font 

注意

[!注释] 如果使用对象变量而不事先声明它,则对象变量的数据类型默认为 Variant

如果某个特定对象类型在过程运行之前是未知的,则可以声明具有 Object 数据类型的对象变量。 使用 Object 数据类型可创建对任何对象的泛型引用。

如果您知道特定对象类型,则应将对象变量声明为对象类型。 例如,如果应用程序包含 Sample 对象类型,则可以使用以下任一语句为该对象声明对象变量:

Dim MyObject As Object ' Declared as generic object. 
Dim MyObject As Sample ' Declared only as Sample object. 

声明特定对象类型可实现自动类型检查、加快编码速度和提高可靠性。

将对象变量分配给对象

使用 Set 语句将对象分配给对象变量。 可以分配 对象表达式Nothing。 例如,以下对象变量赋值有效。

Set MyObject = YourObject ' Assign object reference. 
Set MyObject = Nothing ' Discontinue association. 

您可以通过将 New关键字Set 语句一起使用来将声明对象变量与向对象变量分配对象结合。 例如:

Set MyObject = New Object ' Create and Assign 

将对象变量设置为等于 Nothing 将中断对象变量与任何特定对象的关联。 这将防止因意外更改变量而更改对象。 关闭关联的对象后,对象变量始终设置为 Nothing ,以便可以测试对象变量是否指向有效的对象。 例如:

If Not MyObject Is Nothing Then 
    ' Variable refers to valid object. 
    . . . 
End If 

当然,此测试永远无法绝对确定用户是否已关闭包含对象变量所引用对象的应用程序。

引用对象的当前实例

使用 Me 关键字 (keyword) 引用运行代码的 对象的当前实例。 与当前对象关联的所有过程可以访问称为 Me 的对象。 当将有关对象的当前实例的信息传递到其他模块中的过程时,使用 Me 特别有用。 例如,假定您在模块中包含了以下过程:

Sub ChangeObjectColor(MyObjectName As Object) 
    MyObjectName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256) 
End Sub

可以调用 过程,并通过使用以下语句将对象的当前实例作为参数传递:

ChangeObjectColor Me 

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。