Оператор Property Let

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

Синтаксис

[ Общедоступная версия | Частная | Friend ] [ Статический ] Property Let name ( [ arglist ], value )
[ операторы ]
[ Exit Property ]
[ операторы ]
End Property

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

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

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

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

Часть Описание
Необязательное Необязательный параметр. Указывает, что аргумент не является обязательным. При использовании все последующие аргументы в списке аргументов также должны быть необязательными и объявляться с помощью ключевого слова Optional . Обратите внимание, что правая часть выражения Property Let не может иметь атрибут Optional.
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 Let должен определять как минимум один аргумент для процедуры, которую он определяет. Этот аргумент (или последний аргумент, если аргументов несколько) содержит фактическое значение, присваиваемое свойству при вызове процедуры, определенной оператором Property Let. В предыдущем синтаксисе этот аргумент называется value.

Замечания

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

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

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

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

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

Пример

В этом примере используется оператор Property Let для определения процедуры, присваивающей значение свойству. Свойство определяет цвет пера для пакета рисования.

Dim CurrentColor As Integer 
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3 
 
' Set the pen color property for a Drawing package. 
' The module-level variable CurrentColor is set to 
' a numeric value that identifies the color used for drawing. 
Property Let PenColor(ColorName As String) 
 Select Case ColorName ' Check color name string. 
 Case "Red" 
 CurrentColor = RED ' Assign value for Red. 
 Case "Green" 
 CurrentColor = GREEN ' Assign value for Green. 
 Case "Blue" 
 CurrentColor = BLUE ' Assign value for Blue. 
 Case Else 
 CurrentColor = BLACK ' Assign default value. 
 End Select 
End Property 
 
' The following code sets the PenColor property for a drawing package 
' by calling the Property let procedure. 
 
PenColor = "Red" 

См. также

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

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