Создание объектных переменных
Объектная переменная
может рассматриваться как объект, ссылку на который она содержит. С ее помощью возможно задание или возвращение свойств объекта или использование любых его методов.
Для создания объектной переменной:
1Опишите объектную переменную.
2Присвойте эту объектную переменную объекту.
Описание объектной переменной
Для описания объектной переменной применяется инструкция Dim или одна из других инструкций описания (Public, Private или Static). Переменная, которая ссылается на объект, должна иметь тип Variant, Object, или тип определенного объекта. Например, возможны следующие описания:
' Описывает MyObject с типом Variant.
Dim MyObject
' Описывает MyObject с типом Object.
Dim MyObject As Object
' Описывает MyObject с типом Font.
Dim MyObject As Font
Примечание. Если объектная переменная используется без предварительного описания, она по умолчанию приобретает тип даных Variant.
Имеется возможность описать объектную переменную с типом данных Object в том случае, если определенный объектный тип не известен до выполнения процедуры. Тип данных Object позволяет создать универсальную ссылку на любой объект.
Если определенный объектный тип известен, следует описать объектную переменную с этим объектным типом. Например, если используемое приложение содержит объектный тип Sample, возможно описание переменной для этого объекта с помощью одной из следующих инструкций:
Dim MyObject As Object' Описывает объект как универсальный.
Dim MyObject As Sample' Описывает объект только с типом Sample.
Описание определенных объектных типов обеспечивает автоматическую проверку типа данных, более быстрое выполнение и улучшает читабельность текста программы.
Присвоение объекта объектной переменной
Для присвоения объекта объектной переменной применяется инструкция Set. Имеется возможность присвоить объектное выражение или Nothing. Например допустимы следующие присвоения объектной переменной:
Set MyObject = YourObject' Присваивает ссылку на объект.
Set MyObject = Nothing' Удаляет ссылку на объект.
Можно комбинировать описание объектной переменной с присваиванием ей объекта с помощью ключевого слова New в инструкции Set. Например:
Set MyObject = New Object' Создать и присвоить
Задание для объектной переменной значения Nothing прекращает сопоставление этой переменной с каким-либо определенным объектом. Это предотвращает случайное изменение объекта при изменении переменной. Объектная переменная всегда имеет значение Nothing после закрытия объекта, с которым она сопоставляется, поэтому легко проверить, указывает ли объектная переменная на реальный объект. Например:
If Not MyObject Is Nothing Then
' Переменная ссылается на объект.
. . .
End If
Разумеется, с помощью этого теста невозможно с абсолютной уверенностью определить, закрыл ли пользователь приложение, содержащее объект, на который ссылается объектная переменная.
Ссылка на текущий экземпляр объекта
Для ссылки на текущий экземпляр объекта, в котором в данное время выполняется программа, используется ключевое слово Me. Все процедуры, связанные с текущим объектом, имеют доступ к объекту, указываемому с помощью слова Me. Ключевое слово Me полезно, в частности, для передачи сведений о текущем экземпляре объекта в процедуру из другого модуля. Например предположим, что модуль содержит следующую процедуру:
Sub ChangeObjectColor(MyObjectName As Object)
MyObjectName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
End Sub
Вызов этой процедуры и передача в качестве аргумента текущего экземпляра объекта выполняется с помощью следующей инструкции:
ChangeObjectColor Me