Оператор Property Let

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

Синтаксис

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

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

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

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

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

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

Примечание.

Каждая инструкция Property Let должна определять по крайней мере один допустимый аргумент для определяемой ею процедуры. Значение "допустимо" означает, что его не следует изменять с помощью "Optional" или "ParamArray". Этот аргумент (или последний аргумент, если аргументов несколько) содержит фактическое значение, присваиваемое свойству при вызове процедуры, определенной оператором Property Let. В предыдущем синтаксисе этот аргумент называется value.

Замечания

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