Оператор Property Set

Объявляет имя, аргументы и код, которые формируют тело процедуры Свойства, которая задает ссылку на объект.

Синтаксис

[ Общедоступный | Private | Друг ] [ Статическое ] Имя свойства ([ arglist ], справка )
[ заявления ]
[ Exit Property ]
[ заявления ]
End Property

Синтаксис оператора Property Set включает следующие части:

Часть Описание
Необязательное Необязательное свойство. Указывает, что аргумент может задаваться или не задаваться вызывающей стороной.
Public Необязательное свойство. Указывает, что процедура Property Set доступна для всех других процедур во всех модулях. При использовании процедуры в модуле, содержащем оператор Option Private, доступ к ней открыт только в проекте.
Private Необязательное свойство. Указывает, что процедура Property Set доступна только для процедур модуля, в котором она объявлена.
Friend Необязательное свойство. Используется только в модуле класса. Указывает, что процедура Property Set отображается во всем проекте, но не отображается для контроллера экземпляра объекта.
Static Необязательное свойство. Указывает, что локальные переменные процедуры Набора свойств сохраняются между вызовами. Атрибут Static не влияет на переменные, объявленные вне процедуры Property Set, даже если они используются в этой процедуре.
name Обязательно. Имя процедуры "Набор свойств "; следует стандартным соглашениям именования переменных, за исключением того, что имя может быть таким же, как процедура Свойство Get или Property Let в том же модуле.
arglist Обязательно. Список переменных, представляющих аргументы, которые передаются в процедуру Property Set при ее вызове. Несколько аргументов разделяются запятыми.
reference Обязательно. Переменная, содержащая ссылку на объект, которая используется в правой части назначения ссылки на объект.
Операторы Необязательное свойство. Любая группа операторов, которые выполняются внутри основного текста процедуры Property.

Аргумент arglist имеет следующий синтаксис и элементы:

[ Необязательный ] [ ByVal | ByRef ] [ ParamArray ] varname [( ) ] [ Как тип ] [ = defaultvalue ]

Часть Описание
Необязательное Необязательное свойство. Указывает, что аргумент не является обязательным. При использовании все последующие аргументы в arglist также должны быть необязательными и объявляться с помощью ключевого слова Необязательный . Обратите внимание, что не может быть необязательным для правой стороны выражения "Набор свойств".
ByVal Необязательное свойство. Указывает, что аргумент передается значением.
ByRef Необязательное свойство. Указывает, что аргумент передается по ссылке. ByRef является значением по умолчанию в Visual Basic.
ParamArray Необязательное свойство. Используется как последний аргумент в arglist, чтобы указать, что последний аргумент является массивом Optional элементов Variant. Ключевое слово ParamArray позволяет предоставлять произвольное число аргументов. Не может использоваться с аргументами ByVal, ByRef или Optional.
varname Обязательно. Имя переменной, представляющее аргумент; соответствует стандарту соглашений об именовании переменных.
тип Необязательное свойство. Тип данных аргумента, передаваемого в процедуру; существуют типы Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (только для строк переменной длины), Object, Variant или определенный тип объекта. Если параметр не является Optional, может быть указан определяемый пользователем тип.
defaultvalue Необязательное свойство. Любая константа или константное выражение. Действительно только для параметров Optional. Если тип является объектом, явное значение по умолчанию может быть только Nothing.

Примечание

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

Комментарии

Если явно не указано с помощью общедоступных****, частных или friend, процедуры свойства являются общедоступными по умолчанию. Если не используется static, между вызовами не сохраняется значение локальных переменных.

Ключевое слово Friend может использоваться только в модулях классов. Однако доступ к процедурам Friend может осуществляться в любом модуле проекта. Процедура Friend не отображается в библиотеке типов своего родительского класса; процедура Friend не может быть привязана позднее.

Весь выполняемый код должен быть в процедурах. Вы не можете определить процедуру Набор свойств внутри другой процедуры Свойства, Sub или Function .

Заявление Exit Property вызывает немедленный выход из процедуры Набора свойств. Выполнение программы продолжается с оператора, который следует за оператором, вызвавшим процедуру Property Set. Любое количество операторов Exit Property допускается в любом месте процедуры Property Set.

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

Пример

В данном примере оператор Property Set используется для определения процедуры свойства, которая задает ссылку на объект.

' The Pen property may be set to different Pen implementations. 
Property Set Pen(P As Object) 
 Set CurrentPen = P ' Assign Pen to object. 
End Property

См. также

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

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