Оператор Set

Назначает ссылку на объект переменной или свойству.

Синтаксис

Setobjectvar= {[ New ] objectexpression | Nothing }

Синтаксис оператора Set состоит из следующих элементов.

Part Описание
objectvar Обязательно. Имя переменной или свойства; соответствует стандартным соглашениям об именовании переменных.
New Необязательный параметр. New обычно используется во время объявления разрешения создания неявных объектов. Когда New используется с Set, он создает новый экземпляр класса. Если objectvar содержал ссылку на объект, эта ссылка освобождается, когда назначается новая. Ключевое словоNew не может использоваться для создания новых экземпляров любого встроенного типа данных и не может использоваться для создания зависимых объектов.
выражение objectexpression Обязательно. Выражение, состоящее из имени объекта, другой объявленной переменной того же типа объекта или функции, или метода, которые возвращают объект того же типа объекта.
Nothing Необязательный параметр. Прекращает связь objectvar с любым определенным объектом. При назначении значения Nothingобъекту objectvar освобождаются все системные ресурсы и ресурсы памяти, связанные с ранее указанным объектом, если на него не ссылается никакая другая переменная.

Замечания

Чтобы элемент objectvar был допустимым, он должен представлять собой тип объекта, согласующийся с назначаемым ему объектом.

Операторы Dim, Private, Public, ReDim и Static только объявляют переменную, которая ссылается на объект. Ссылка на фактический объект не задается, до тех пор пока оператор Set используется для назначения определенного объекта.

В следующем примере показано, как используется Dim для объявления массива с типом Form1. Экземпляр на Form1 самом деле не существует. Затем Set назначает ссылки на новые экземпляры Form1 переменной myChildForms . Такой код можно использовать для создания дочерних форм в приложении MDI.

Dim myChildForms(1 to 4) As Form1 
Set myChildForms(1) = New Form1 
Set myChildForms(2) = New Form1 
Set myChildForms(3) = New Form1 
Set myChildForms(4) = New Form1 

Обычно, когда используется Set для назначения переменной ссылки на объект, для этой переменной не создается копия объекта. Вместо этого создается ссылка на объект. Несколько объектных переменных могут ссылаться на один и тот же объект. Поскольку такие переменные являются, скорее, ссылками на объект, чем копиями объекта, любое изменение в объекте отражается во всех переменных, которые на него ссылаются. Однако, когда ключевое слово New используется в операторе Set, фактически создается экземпляр объекта.

Пример

В этом примере используется оператор Set, чтобы назначить переменным ссылки на объекты. Предполагается, что YourObject представляет собой допустимый объект со свойством Text.

Dim YourObject, MyObject, MyStr 
Set MyObject = YourObject    ' Assign object reference. 
' MyObject and YourObject refer to the same object. 
YourObject.Text = "Hello World"    ' Initialize property. 
MyStr = MyObject.Text    ' Returns "Hello World". 
 
' Discontinue association. MyObject no longer refers to YourObject. 
Set MyObject = Nothing    ' Release the object. 

См. также

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.