Оператор Private

Используется на уровне модуля для объявления частных переменных и выделения пространства для хранения.

Синтаксис

Private [ WithEvents ] varname [ ( [ subscripts] ] ] [ As [ New ] type ]
[ [ [ WithEvents ] varname [ ( [ subscripts ] ] ] [ Как [ Новый ] тип ]] . . .


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

Part Описание
WithEvents Необязательное. Ключевое слово, указывающее, что varname — это объектная переменная, которая используется для ответа на события, запускаемые объектом ActiveX. Ключевое слово WithEvents можно использовать только в модулях классов. Вы можете объявить как можно больше отдельных переменных, как вам нравится с помощью WithEvents, но вы не можете создавать массивы с WithEvents, и вы не можете использовать New с WithEvents.
varname Обязательный. Имя переменной; соответствует стандартным соглашениям об именовании переменных.
подскрипники Необязательное. Измерения переменной массива (поддерживается объявление до 60 измерений). В аргументе subscripts используется следующий синтаксис:

[ ниже] верхняя [, [ ниже] верхняя ] . . .

Если явно не указано в нижней части, нижняя граница массива контролируется заявлением Option Base. Если оператор Option Base не задан, нижняя граница равна нулю.
New Необязательное. Ключевое слово, позволяющее создать объект неявным образом. Если при объявлении переменной объекта используется New, по первой ссылке на него создается новый экземпляр объекта, поэтому для назначения ссылки на объект не нужно использовать заявление Set. Новое ключевое слово не может использоваться для объявления переменных любого типа внутренних данных. Он также не может использоваться для объявления экземпляров зависимых объектов и не может использоваться с WithEvents.
type Необязательное. Тип данных переменной; может быть Byte, Boolean, Integer, Long, Currency, Single , Double, Decimal (в настоящее время не поддерживается), Date, String (для строк переменной длины), Длина строки (для строк фиксированной длины), Объект, Вариант, определенный пользователем тип, или тип объекта. Используйте отдельный пункт Типа для каждой определяемой переменной.

Примечания

Частные переменные доступны только в том модуле, где они объявлены.

Используйте оператор Private для объявления типа данных переменной. Например, следующий оператор объявляет переменную типа Integer.

Private NumberOfEmployees As Integer 

Оператор Private можно использовать для объявления типа объекта переменной. Следующий оператор объявляет переменную для нового экземпляра листа.

Private X As New Worksheet 

Если ключевое слово New не используется при объявлении переменной объекта, переменная, которая относится к объекту, должна быть назначена существующему объекту с помощью утверждения Set, прежде чем он может быть использован. Пока объект не назначен, объявленная переменная объекта имеет специальное значение Nothing, которое указывает на то, что он не относится ни к одному конкретному экземпляру объекта.

Если вы не указываете тип данных или тип объекта, а в модуле нет заявления Deftype, переменная по умолчанию является Variant.

Оператор Private можно использовать с пустыми скобками, чтобы объявить динамический массив. Объявив динамический массив, используйте заявление ReDim в процедуре, чтобы определить количество измерений и элементов в массиве. Если вы пытаетесь перенастроить измерение для переменной массива, размер которой был явно указан в частном, публичном или дим-заявлении, возникает ошибка.

При инициализации переменных числовой переменной присваивается значение 0, строке переменной длины — строка нулевой длины (""), а строка фиксированной длины заполняется нулями. Переменные типа Variant при инициализации получают значение Empty. Каждый элемент переменной определяемого пользователем типа инициализируется как отдельная переменная.

Примечание

Частное заявление нельзя использовать внутри процедуры; используйте заявление Dim для объявления локальных переменных.

Пример

В этом примере показано использование оператора Private на уровне модуля для объявления переменных частными, то есть доступными только в модуле, в котором они объявлены.

Private Number As Integer ' Private Integer variable. 
Private NameArray(1 To 5) As String ' Private array variable. 
' Multiple declarations, two Variants and one Integer, all Private. 
Private MyVar, YourVar, ThisVar As Integer 

См. также

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

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