Оператор Private

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

Синтаксис

Private [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]
[ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]] . . .

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

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

[ lowerTo ] upper [ , [ lowerTo ] upper ] . .

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

Замечания

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

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

Private NumberOfEmployees As Integer 

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

Private X As New Worksheet 

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

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

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

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

Примечание.

Оператор Private нельзя использовать в процедуре; Используйте инструкцию 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 и обратная связь.