set в vba что это
Set в vba что это
Присваивает ссылку на объект переменной или свойству.
Параметры
объектнаяПеременная
Обязательный. Имя переменной или свойства, удовлетворяющее стандартным правилам именования переменных.
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 statement
Assigns an object reference to a variable or property.
Syntax
Setobjectvar = <[ 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.
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.
Инструкция Set (Visual Basic)
Объявляет Set процедуру свойства, используемую для присвоения значения свойству.
Синтаксис
Компоненты
attributelist
Необязательный элемент. См. список атрибутов.
accessmodifier
Необязательно для одного из Get Set операторов и в этом свойстве. Может применяться один из перечисленных ниже типов.
value
Обязательный элемент. Параметр, содержащий новое значение свойства.
statements
Необязательный элемент. Одна или несколько инструкций, выполняемых при Set вызове процедуры свойства.
End Set
Обязательный элемент. Завершает определение Set процедуры свойства.
Комментарии
Visual Basic автоматически вызывает процедуру свойства, Set когда оператор присваивания предоставляет значение, которое должно храниться в свойстве.
Текст объявления свойства может содержать только Get процедуры свойства и Set между оператором Property и End Property оператором. Он не может хранить ничего, Кроме этих процедур. В частности, он не может хранить текущее значение свойства. Это значение необходимо хранить за пределами свойства, так как при хранении в любой из процедур свойств другая процедура свойства не может получить к ней доступ. Обычным подходом является сохранение значения в закрытой переменной, объявленной на том же уровне, что и свойство. Необходимо определить Set процедуру внутри свойства, к которому она применяется.
Set Процедура по умолчанию имеет уровень доступа содержащего его свойства, если только не используется accessmodifier в Set инструкции.
Правила
Поведение
Возврат из процедуры свойства. Когда Set процедура возвращается в вызывающий код, выполнение продолжится после оператора, который предоставил значение для сохранения.
Exit Property Операторы и Return вызывают немедленный выход из процедуры свойства. Любое количество Exit Property инструкций и Return может использоваться в любом месте процедуры, и можно смешивать Exit Property Return операторы и.
Пример
В следующем примере инструкция используется Set для задания значения свойства.
Set Statement (Visual Basic)
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.
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
Visual Basic automatically calls a property’s Set procedure when an assignment statement provides a value to be stored in the property.
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
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
Назначает ссылку на объект переменной или свойству.
Синтаксис
Setobjectvar = <[ New ] objectexpression | Nothing >
Синтаксис оператора Set состоит из следующих элементов.
Part | Описание |
---|---|
objectvar | Обязательный. Имя переменной или свойства; соответствует стандартным соглашениям об именовании переменных. |
New | Необязательное. New обычно используется во время объявления разрешения создания неявных объектов. Когда New используется с Set, он создает новый экземпляр класса. Если objectvar содержал ссылку на объект, эта ссылка освобождается, когда назначается новая. Новое ключевое слово не может использоваться для создания новых экземпляров любого типа внутренних данных и не может использоваться для создания зависимых объектов. |
objectexpression | Обязательный. Выражение, состоящее из имени объекта, другой объявленной переменной того же типа объекта или функции, или метода, которые возвращают объект того же типа объекта. |
Nothing | Необязательное. Прекращает связь objectvar с любым определенным объектом. Назначение Nothing для objectvar освобождает все ресурсы системы и памяти, связанные с ранее упоминаемого объекта, если на него не ссылается другая переменная. |
Примечания
Чтобы элемент objectvar был допустимым, он должен представлять собой тип объекта, согласующийся с назначаемым ему объектом.
Операторы Dim, Private, Public, ReDim и Static только объявляют переменную, которая ссылается на объект. Ссылка на фактический объект не задается, до тех пор пока оператор Set используется для назначения определенного объекта.
Обычно, когда используется Set для назначения переменной ссылки на объект, для этой переменной не создается копия объекта. Вместо этого создается ссылка на объект. Несколько объектных переменных могут ссылаться на один и тот же объект. Поскольку такие переменные являются, скорее, ссылками на объект, чем копиями объекта, любое изменение в объекте отражается во всех переменных, которые на него ссылаются. Однако, когда ключевое слово New используется в операторе Set, фактически создается экземпляр объекта.
Пример
В этом примере используется оператор Set, чтобы назначить переменным ссылки на объекты. Предполагается, что YourObject представляет собой допустимый объект со свойством Text.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.