Создание объектных переменныхCreating object variables

С объектной переменной можно обращаться точно так же, как объектом, к которому она относится.You can treat an object variable exactly the same as the object to which it refers. Вы можете задавать или возвращать свойства данного объекта или использовать любой из его методов.You can set or return the properties of the object or use any of its methods.

Создание объектной переменнойCreate an object variable

  1. Объявите эту объектную переменную.Declare the object variable.

  2. Назначьте эту объектную переменную объекту.Assign the object variable to an object.

Объявление объектной переменнойDeclare an object variable

Объявите объектную переменную с помощью оператора Dim или одного из других операторов объявления (Public, Privateили static).Use the Dim statement or one of the other declaration statements (Public, Private, or Static) to declare an object variable. Переменная , которая ссылается на объект, должна иметь тип Variant, объект или определенный тип объекта.A variable that refers to an object must be a Variant, an Object, or a specific type of object. Например, следующие объявления являются допустимыми:For example, the following declarations are valid:

' 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.If you use an object variable without declaring it first, the data type of the object variable is Variant by default.

Объявить объектную переменную с типом данных Object можно в случае, когда конкретный тип объекта неизвестен вплоть до запуска процедуры.You can declare an object variable with the Object data type when the specific object type is not known until the procedure runs. Используйте тип данных Object для создания универсальной ссылки на любой объект.Use the Object data type to create a generic reference to any object.

Если конкретный тип объекта вам известен, следует объявлять объектную переменную как тип данного объекта.If you know the specific object type, you should declare the object variable as that object type. Например, если приложение содержит пример типа объекта, можно объявить объектную переменную для этого объекта с помощью одного из следующих операторов:For example, if the application contains a Sample object type, you can declare an object variable for that object by using either of these statements:

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

Объявление конкретных типов объектов обеспечивает автоматическую проверку типов, ускорение выполнения кода и улучшенную удобочитаемость.Declaring specific object types provides automatic type checking, faster code, and improved readability.

Назначение объектной переменной объектуAssign an object variable to an object

Используйте оператор Set , чтобы назначить объект объектной переменной.Use the Set statement to assign an object to an object variable. Можно присвоить объектное выражение или ничего не указывать.You can assign an object expression or Nothing. Например, допустимы следующие назначения переменных объекта.For example, the following object variable assignments are valid.

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

Вы можете сочетать Объявление объектной переменной с присвоением ему объекта с помощью ключевого слова New с оператором Set .You can combine declaring an object variable with assigning an object to it by using the New keyword with the Set statement. Пример:For example:

Set MyObject = New Object ' Create and Assign 

Задание для объектной переменной значения Nothing прерывает связь этой объектной переменной с конкретным объектом.Setting an object variable equal to Nothing discontinues the association of the object variable with any specific object. Это предотвращает случайное изменение объекта в результате изменения соответствующей переменной.This prevents you from accidentally changing the object by changing the variable. Объектная переменная всегда имеет значение Nothing после закрытия связанного объекта, поэтому можно проверить, указывает ли переменная объекта на допустимый объект.An object variable is always set to Nothing after closing the associated object so you can test whether the object variable points to a valid object. Пример:For example:

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

Конечно, этот тест не может определить с абсолютной степенью уверенности в том, что пользователь закрыл приложение, содержащее объект, на который ссылается переменная объекта.Of course, this test can never determine with absolute certainty whether a user has closed the application containing the object to which the object variable refers.

Ссылка на текущий экземпляр объектаRefer to the current instance of an object

Используйте ключевое слово Me для ссылки на текущий экземпляр объекта, в котором выполняется код.Use the Me keyword to refer to the current instance of the object where the code is running. Все процедуры, связанные с текущим объектом, имею доступ к объекту, на который ссылаются с использованием Me.All procedures associated with the current object have access to the object referred to as Me. Использование ключевого слова Me особенно полезно при передаче информации о текущем экземпляре объекта процедуре в другом модуле.Using Me is particularly useful for passing information about the current instance of an object to a procedure in another module. Например, предположим, что имеется следующая процедура в модулеFor example, suppose you have the following procedure in a module:

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

Вы можете вызвать процедуру и передать текущий экземпляр объекта в качестве аргумента с помощью следующего оператора:You can call the procedure and pass the current instance of the object as an argument by using the following statement:

ChangeObjectColor Me 

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.