Оператор 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"
См. также
- Вызывающие процедуры свойств
- Executing code when setting properties
- Написание процедуры свойства
- Типы данных
- Операторы
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.