Написание процедуры свойстваWriting a property procedure

Процедура Property — это ряд операторов Visual Basic, которые позволяют программистам создавать настраиваемые свойства и управлять ими.A property procedure is a series of Visual Basic statements that allow a programmer to create and manipulate custom properties.

  • Процедуры Property можно использовать для создания свойств, открытых только для чтения, в формах, стандартных модулях и модулях классов.Property procedures can be used to create read-only properties for forms, standard modules, and class modules.

  • Процедуры Property следует использовать вместо переменных с атрибутом Public в коде, который должен выполняться при установке значения свойства.Property procedures should be used instead of Public variables in code that must be executed when the property value is set.

  • В отличие от общедоступных переменных, процедурам свойств могут быть назначены строки справки в обозревателе объектов.Unlike Public variables, property procedures can have Help strings assigned to them in the Object Browser.

При создании процедуры Property она становится свойством модуля , содержащего процедуру.When you create a property procedure, it becomes a property of the module containing the procedure. Visual Basic предоставляет следующие три типа процедур свойств.Visual Basic provides the following three types of property procedures.

ProcedureProcedure ОписаниеDescription
Property LetProperty Let Процедура, устанавливающая значение свойства.A procedure that sets the value of a property.
Property GetProperty Get Процедура, возвращающая значение свойства.A procedure that returns the value a property.
Property SetProperty Set Процедура, устанавливающая ссылку на объект.A procedure that sets a reference to an object.

Для объявления процедуры Property используется следующий синтаксис:The syntax for declaring a property procedure is as follows.

[ Общедоступная | Частная ] [ Static ] Свойство { Get | let | Set } PropertyName [( аргументы )] [ as Type ] Операторы End Property[ Public | Private ] [ Static ] Property { Get | Let | Set } propertyname [( arguments )] [ As type ] statements End Property

Процедуры свойств обычно используются в парах: свойство Let со свойством Getи набор свойств со свойством Get.Property procedures are usually used in pairs: Property Let with Property Get, and Property Set with Property Get. Объявление только процедуры Property Get аналогично объявлению свойства, открытого только для чтения.Declaring a Property Get procedure alone is like declaring a read-only property. Совместное использование всех трех типов процедур свойств полезно только для переменных Variant , так как только объект Variant может содержать либо объект, либо другие сведения о типе данных.Using all three property procedure types together is only useful for Variant variables, because only a Variant can contain either an object or other data type information. Процедура Property Set рассчитана на использование с объектами, в отличие от процедуры Property Let.Property Set is intended for use with objects; Property Let isn't.

В приведенной ниже таблице показаны обязательные аргументы в объявлениях процедуры свойств.The required arguments in property procedure declarations are shown in the following table.

ProcedureProcedure Синтаксис объявленияDeclaration syntax
Property GetProperty Get Свойство getпропнаме (1,..., n) в качестве типаProperty Getpropname (1, …, n) As type
Property LetProperty Let Свойство Letпропнаме (1,...,,,, n, n + 1)Property Letpropname (1, …,,,, n, n +1)
Property SetProperty Set Свойство Setпропнаме (1,..., n, n + 1)Property Setpropname (1, …, n, n +1)

Первый аргумент с помощью следующего аргумента (1,..., n) должен иметь одни и те же имена и типы данных во всех процедурах свойства с одинаковыми именами.The first argument through the next to last argument (1, …, n) must share the same names and data types in all property procedures with the same name.

Для объявления процедуры Property Get требуется на один аргумент меньше, чем для объявления связанных процедур Property Let и Property Set.A Property Get procedure declaration takes one less argument than the related Property Let and Property Set declarations. Тип данных для процедуры Property Get должен совпадать с типом данных последнего аргумента (n + 1) в соответствующих объявлениях Property Let и Set Property .The data type of the Property Get procedure must be the same as the data type of the last argument (n +1) in the related Property Let and Property Set declarations. Например, при объявлении следующей процедуры Property Let имена и типы данных аргументов процедуры Property Get должны совпадать с именами и типами данных аргументов процедуры Property Let.For example, if you declare the following Property Let procedure, the Property Get declaration must use arguments with the same name and data type as the arguments in the Property Let procedure.

Property Let Names(intX As Integer, intY As Integer, varZ As Variant) 
 ' Statement here. 
End Property 
 
Property Get Names(intX As Integer, intY As Integer) As Variant 
 ' Statement here. 
End Property 

Последний аргумент процедуры Property Set должен быть объектного типа или типа Variant.The data type of the final argument in a Property Set declaration must be either an object type or a Variant.

См. такжеSee also

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.