Оператор Property Set

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

Синтаксис

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

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

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

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

[ Необязательно ] [ ByVal | ByRef ] [ ParamArray ] varname [ ( ) ] [ Astype ] [ =defaultvalue ]

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

Примечание.

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

Замечания

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

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

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

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

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