Шаг 49 - Инструкция Property Set

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

[Public | Private] [Static] Property Set имя [(списокАргументов)]
	[инструкции]
	[Exit Property] 
	[инструкции]
End Property

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

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

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

Замечания
Процедуры Property, тип которых не указан явно с помощью слов Public или Private, являются общими по умолчанию. Если не используется слово Static, значения локальных переменных не сохраняются между вызовами процедур.
Все выполняемые команды должны находиться в процедурах. Не допускается определение процедуры Property Set внутри другой процедуры Property, Sub или Function.
Инструкция Exit Property вызывает немедленный выход из процедуры Property Set. Выполнение программы продолжается с инструкции, следующей за инструкцией вызова процедуры Property Set. В любом месте процедуры Property Set допускается любое число инструкций Exit Property.
Подобно процедурам Function и Property Get, процедура Property Set является самостоятельной процедурой, которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Однако в отличие от процедур Function и Property Get, которые возвращают значения, процедуру Property Set можно использовать только в левой части присвоения ссылки на объект (в инструкции Set).

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

' Свойству Pen могут быть присвоены значения свойства Pen разных объектов.
Property Set Pen(P As Object)
	Set CurrentPen = P	' Присваивает свойство Pen объекту.
End Property

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.