Команда set vba excel

Обновлено: 10.08.2022

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

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

Замечания
ОбъектнаяПеременная должна иметь объектный тип, соответствующий объекту, который будет ей присвоен.
Инструкции Dim, Private, Public, ReDim и Static описывают только переменную, которая ссылается на объект. Ссылка на реальный объект не возникает до присвоения определенного объекта в инструкции Set.
В следующем примере показано, как инструкция Dim используется для описания массива с типом Form1. Реально не существует ни одного экземпляра объекта Form1. Затем с помощью инструкции Set ссылка на новый экземпляр объекта Form1 присваивается переменной myChildForms. Такая программа позволяет создать дочерние формы в многооконном приложении (MDI).

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

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

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

Синтаксис

Set objectvar = <[ New ] objectexpressionNothing | >

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

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

Примечания

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

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

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

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

Пример

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

См. также

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

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

Assigns an object reference to a variable or property.

Syntax

Set objectvar = <[ New ] objectexpression | Nothing >

The Set statement syntax has these parts:

Part Description
objectvar Required. Name of the variable or property; follows standard variable naming conventions.
New Optional. New is usually used during declaration to enable implicit object creation. When New is used with Set, it creates a new instance of the class. If objectvar contained a reference to an object, that reference is released when the new one is assigned. The New keyword can't be used to create new instances of any intrinsic data type and can't be used to create dependent objects.
objectexpression Required. Expression consisting of the name of an object, another declared variable of the same object type, or a function or method that returns an object of the same object type.
Nothing Optional. Discontinues association of objectvar with any specific object. Assigning Nothing to objectvar releases all the system and memory resources associated with the previously referenced object when no other variable refers to it.

Remarks

To be valid, objectvar must be an object type consistent with the object being assigned to it.

The Dim, Private, Public, ReDim, and Static statements only declare a variable that refers to an object. No actual object is referred to until you use the Set statement to assign a specific object.

The following example illustrates how Dim is used to declare an array with the type Form1 . No instance of Form1 actually exists. Set then assigns references to new instances of Form1 to the myChildForms variable. Such code might be used to create child forms in an MDI application.

Generally, when you use Set to assign an object reference to a variable, no copy of the object is created for that variable. Instead, a reference to the object is created. More than one object variable can refer to the same object. Because such variables are references to the object rather than copies of the object, any change in the object is reflected in all variables that refer to it. However, when you use the New keyword in the Set statement, you are actually creating an instance of the object.

Example

This example uses the Set statement to assign object references to variables. YourObject is assumed to be a valid object with a Text property.

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Declares a Set property procedure used to assign a value to a property.

Syntax

Parts

attributelist
Optional. See Attribute List.

accessmodifier
Optional on at most one of the Get and Set statements in this property. Can be one of the following:

value
Required. Parameter containing the new value for the property.

datatype
Required if Option Strict is On . Data type of the value parameter. The data type specified must be the same as the data type of the property where this Set statement is declared.

statements
Optional. One or more statements that run when the Set property procedure is called.

End Set
Required. Terminates the definition of the Set property procedure.

Remarks

Every property must have a Set property procedure unless the property is marked ReadOnly . The Set procedure is used to set the value of the property.

Visual Basic automatically calls a property's Set procedure when an assignment statement provides a value to be stored in the property.

Visual Basic passes a parameter to the Set procedure during property assignments. If you do not supply a parameter for Set , the integrated development environment (IDE) uses an implicit parameter named value . The parameter holds the value to be assigned to the property. You typically store this value in a private local variable and return it whenever the Get procedure is called.

The body of the property declaration can contain only the property's Get and Set procedures between the Property Statement and the End Property statement. It cannot store anything other than those procedures. In particular, it cannot store the property's current value. You must store this value outside the property, because if you store it inside either of the property procedures, the other property procedure cannot access it. The usual approach is to store the value in a Private variable declared at the same level as the property. You must define a Set procedure inside the property to which it applies.

The Set procedure defaults to the access level of its containing property unless you use accessmodifier in the Set statement.

Rules

Mixed Access Levels. If you are defining a read-write property, you can optionally specify a different access level for either the Get or the Set procedure, but not both. If you do this, the procedure access level must be more restrictive than the property's access level. For example, if the property is declared Friend , you can declare the Set procedure Private , but not Public .

If you are defining a WriteOnly property, the Set procedure represents the entire property. You cannot declare a different access level for Set , because that would set two access levels for the property.

Behavior

Returning from a Property Procedure. When the Set procedure returns to the calling code, execution continues following the statement that provided the value to be stored.

Set property procedures can return using either the Return Statement or the Exit Statement.

The Exit Property and Return statements cause an immediate exit from a property procedure. Any number of Exit Property and Return statements can appear anywhere in the procedure, and you can mix Exit Property and Return statements.

Example

The following example uses the Set statement to set the value of a property.

Set Объявляет процедуру свойства, используемую для присвоения значения свойству.

Синтаксис

Компоненты

attributelist
Необязательный элемент. См. список атрибутов.

accessmodifier
Необязательно для одного из Get операторов и Set в этом свойстве. Может применяться один из перечисленных ниже типов.

value
Обязательный. Параметр, содержащий новое значение свойства.

datatype
Обязательный, если Option Strict имеет значение On . Тип value данных параметра. Указанный тип данных должен совпадать с типом данных свойства, в котором объявлен этот Set оператор.

statements
Необязательный элемент. Одна или несколько инструкций, выполняемых при Set вызове процедуры свойства.

End Set
Обязательный. Завершает определение Set процедуры свойства.

Комментарии

Каждое свойство должно иметь Set процедуру свойства, если только свойство не помечено как ReadOnly . Set Процедура используется для задания значения свойства.

Visual Basic автоматически вызывает процедуру свойства Set , когда оператор присваивания предоставляет значение, которое должно храниться в свойстве.

Visual Basic передает параметр в Set процедуру во время назначения свойств. Если параметр для Set не указан, в интегрированной среде разработки (IDE) используется неявный параметр с именем value . Параметр содержит значение, присваиваемое свойству. Обычно это значение сохраняется в закрытой локальной переменной и возвращается при каждом Get вызове процедуры.

Текст объявления свойства может содержать только процедуры свойства Get и Set между Get и End Property оператором. Он не может хранить ничего, Кроме этих процедур. В частности, он не может хранить текущее значение свойства. Это значение необходимо хранить за пределами свойства, так как при хранении в любой из процедур свойств другая процедура свойства не может получить к ней доступ. Обычным подходом является сохранение значения в закрытой переменной, объявленной на том же уровне, что и свойство. Необходимо определить Set процедуру внутри свойства, к которому она применяется.

Set Процедура по умолчанию имеет уровень доступа содержащего его свойства, если только не используется accessmodifier в Set инструкции.

Правила

Уровни смешанного доступа. При определении свойства для чтения и записи можно дополнительно указать другой уровень доступа для процедуры или Set , но не для Get обоих. В этом случае уровень доступа процедуры должен быть более четким, чем уровень доступа свойства. Например, если свойство объявлено Friend , можно объявить Set процедуру Private , но не Public .

При определении WriteOnly свойства Set процедура представляет все свойство. Нельзя объявить другой уровень доступа для Set , так как для свойства будет задано два уровня доступа.

Поведение

Возврат из процедуры свойства. Set Когда процедура возвращается в вызывающий код, выполнение продолжится после оператора, который предоставил значение для сохранения.

Set процедуры свойств могут возвращать использование либо Set , либо оператора Exit.

Exit Property Операторы и Return вызывают немедленный выход из процедуры свойства. Любое количество Exit Property инструкций и Return может использоваться в любом месте процедуры, и можно смешивать Exit Property операторы и Return .

Пример

В следующем примере инструкция используется Set для задания значения свойства.

Читайте также: