Оператор Property SetProperty Set statement

Объявляет имя, аргументыи код, которые формируют тело процедуры свойства , которое задает ссылку на объект.Declares the name, arguments, and code that form the body of a Property procedure, which sets a reference to an object.

СинтаксисSyntax

[ Общедоступный | частный | друг ] [ Static ] Имя набора свойств([ arglist ], Reference )[ Public | Private | Friend ] [ Static ] Property Setname ( [ arglist ], reference )
[ Операторы ][ statements ]
[ Свойство Exit ][ Exit Property ]
[ Операторы ][ statements ]
End PropertyEnd Property


Синтаксис оператора Property Set включает следующие части:The Property Set statement syntax has these parts:

ЧастьPart ОписаниеDescription
НеобязательноеOptional Необязательно.Optional. Указывает, что аргумент может задаваться или не задаваться вызывающей стороной.Indicates that the argument may or may not be supplied by the caller.
PublicPublic Необязательно.Optional. Указывает, что процедура Property Set доступна для всех других процедур во всех модулях.Indicates that the Property Set procedure is accessible to all other procedures in all modules. При использовании процедуры в модуле, содержащем оператор Option Private, доступ к ней открыт только в проекте.If used in a module that contains an Option Private statement, the procedure is not available outside the project.
PrivatePrivate Необязательно.Optional. Указывает, что процедура Property Set доступна только для процедур модуля, в котором она объявлена.Indicates that the Property Set procedure is accessible only to other procedures in the module where it is declared.
FriendFriend Необязательно.Optional. Используется только в модуле класса.Used only in a class module. Указывает, что процедура Property Set отображается во всем проекте, но не отображается для контроллера экземпляра объекта.Indicates that the Property Set procedure is visible throughout the project, but not visible to a controller of an instance of an object.
StaticStatic Необязательно.Optional. Указывает, что локальные переменные процедуры набора свойств сохраняются между вызовами.Indicates that the Property Set procedure's local variables are preserved between calls. Атрибут Static не влияет на переменные, объявленные вне процедуры Property Set, даже если они используются в этой процедуре.The Static attribute doesn't affect variables that are declared outside the Property Set procedure, even if they are used in the procedure.
namename Обязательный.Required. Имя процедуры набора свойств ; следует правилам именования стандартных переменных, но это имя может совпадать с процедурой Get или Property Let в одном модуле.Name of the Property Set procedure; follows standard variable naming conventions, except that the name can be the same as a Property Get or Property Let procedure in the same module.
arglistarglist Обязательный.Required. Список переменных, представляющих аргументы, которые передаются в процедуру Property Set при ее вызове.List of variables representing arguments that are passed to the Property Set procedure when it is called. Несколько аргументов разделяются запятыми.Multiple arguments are separated by commas.
referencereference Обязательный.Required. Переменная, содержащая ссылку на объект, которая используется в правой части назначения ссылки на объект.Variable containing the object reference used on the right side of the object reference assignment.
Операторыstatements Необязательно.Optional. Любая группа операторов, которые выполняются внутри основного текста процедуры Property.Any group of statements to be executed within the body of the Property procedure.

Аргумент arglist имеет следующий синтаксис и элементы:The arglist argument has the following syntax and parts:

[ Необязательно ] [ ByVal | ByRef ] [ ParamArray ] имя_переменной [()] [ тип ] [ = DefaultValue ][ Optional ] [ ByVal | ByRef ] [ ParamArray ] varname [ ( ) ] [ As type ] [ = defaultvalue ]


ЧастьPart ОписаниеDescription
НеобязательноеOptional Необязательно.Optional. Указывает, что аргумент не является обязательным.Indicates that an argument is not required. При использовании все последующие аргументы в списке arglist также должны быть необязательными и объявлены с помощью ключевого слова Optional .If used, all subsequent arguments in arglist must also be optional and declared by using the Optional keyword. Обратите внимание, что правая часть выражения набора свойств не может быть обязательной.Note that it is not possible for the right side of a Property Set expression to be Optional.
ByValByVal Необязательно.Optional. Указывает, что аргумент передается значением.Indicates that the argument is passed by value.
ByRefByRef Необязательно.Optional. Указывает, что аргумент передается по ссылке.Indicates that the argument is passed by reference. ByRef является значением по умолчанию в Visual Basic.ByRef is the default in Visual Basic.
ParamArrayParamArray Необязательно.Optional. Используется как последний аргумент в arglist, чтобы указать, что последний аргумент является массивом Optional элементов Variant.Used only as the last argument in arglist to indicate that the final argument is an Optional array of Variant elements. Ключевое слово ParamArray позволяет предоставлять произвольное число аргументов.The ParamArray keyword allows you to provide an arbitrary number of arguments. Не может использоваться с аргументами ByVal, ByRef или Optional.It may not be used with ByVal, ByRef, or Optional.
varnamevarname Обязательный.Required. Имя переменной, представляющее аргумент; соответствует стандарту соглашений об именовании переменных.Name of the variable representing the argument; follows standard variable naming conventions.
typetype Необязательно.Optional. Тип данных аргумента, передаваемого в процедуру; существуют типы Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (только для строк переменной длины), Object, Variant или определенный тип объекта.Data type of the argument passed to the procedure; may be Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (not currently supported), Date, String (variable length only), Object, Variant, or a specific object type. Если параметр не является Optional, может быть указан определяемый пользователем тип.If the parameter is not Optional, a user-defined type may also be specified.
значениеdefaultvalue Необязательно.Optional. Любая константа или константное выражение.Any constant or constant expression. Действительно только для параметров Optional.Valid for Optional parameters only. Если типом является объект, явное значение по умолчанию не может быть равно Nothing.If the type is an Object, an explicit default value can only be Nothing.

Примечание

Каждый оператор Property Set должен определять по крайней мере один аргумент для определяемой процедуры.Every Property Set statement must define at least one argument for the procedure it defines. Этот аргумент (или последний аргумент, если их несколько) содержит действительную ссылку на объект, которая назначается свойству при вызове определяемой оператором Property Set процедуры.That argument (or the last argument if there is more than one) contains the actual object reference for the property when the procedure defined by the Property Set statement is invoked. В предшествующем синтаксисе она указывается как reference.It is referred to as reference in the preceding syntax. Этот элемент не может быть Optional.It can't be Optional.

ПримечанияRemarks

Если он не указан явно с использованием общедоступных, частных или дружественных, процедуры свойств по умолчанию являются общедоступными.If not explicitly specified by using Public, Private, or Friend, Property procedures are public by default. Если функция static не используется, значение локальных переменных не сохраняется между вызовами.If Static isn't used, the value of local variables is not preserved between calls.

Ключевое слово Friend может использоваться только в модулях классов.The Friend keyword can only be used in class modules. Однако доступ к процедурам Friend может осуществляться в любом модуле проекта.However, Friend procedures can be accessed by procedures in any module of a project. Процедура Friend не отображается в библиотеке типов своего родительского класса; процедура Friend не может быть привязана позднее.A Friend procedure doesn't appear in the type library of its parent class, nor can a Friend procedure be late bound.

Весь выполняемый код должен быть в процедурах.All executable code must be in procedures. Невозможно определить процедуру Set свойства внутри другого свойства, Sub или процедуры Function .You can't define a Property Set procedure inside another Property, Sub, or Function procedure.

Оператор Exit Property вызывает немедленный выход из процедуры Set свойства .The Exit Property statement causes an immediate exit from a Property Set procedure. Выполнение программы продолжается с оператора, который следует за оператором, вызвавшим процедуру Property Set.Program execution continues with the statement following the statement that called the Property Set procedure. Любое количество операторов Exit Property допускается в любом месте процедуры Property Set.Any number of Exit Property statements can appear anywhere in a Property Set procedure.

Подобно процедурам Function и Property Get, Property Set является отдельной процедурой, которая может принимать аргументы, выполнять последовательность операторов и изменять значения своих аргументов.Like a Function and Property Get procedure, a Property Set procedure is a separate procedure that can take arguments, perform a series of statements, and change the value of its arguments. Тем не менее, в отличие от функции Get и свойства Get , которые возвращают значение, можно использовать только процедуру Set в левой части оператора назначения ссылки на объект или оператора Set .However, unlike a Function and Property Get procedure, both of which return a value, you can only use a Property Set procedure on the left side of an object reference assignment or Set statement.

ПримерExample

В данном примере оператор Property Set используется для определения процедуры свойства, которая задает ссылку на объект.This example uses the Property Set statement to define a property procedure that sets a reference to an object.

' The Pen property may be set to different Pen implementations. 
Property Set Pen(P As Object) 
 Set CurrentPen = P ' Assign Pen to object. 
End Property

См. также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.