Применяется на уровне модуля для описания личных переменных и выделения памяти.
Private [WithEvents] имяПеременной[([индексы])] [As [New] тип] [,[WithEvents] имяПеременной[([индексы])] [As [New] тип]] . . .
Параметры
WithEvents
Необязательный. Ключевое слово, указывающее, что имяПеременной является объектной переменной, которая используется при отклике на события, генерируемые объектом ActiveX. Применяется только в модулях класса. Пользователь имеет возможность описать с помощью ключевого слова WithEvents произвольное количество отдельных переменных, однако при этом не допускается создание массивов. Не допускается также использование ключевого слова New с ключевым словом WithEvents.
имяПеременной
Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.
индексы
Необязательный. Размерности переменной массива; допускается описание до 60 размерностей. Аргумент индексы использует следующий синтаксис:
[нижний To] верхний [,[нижний To] верхний] . . .Если нижний индекс не задан явно, нижняя граница массива определяется инструкцией Option Base. Если отсутствует инструкция Option Base, нижняя граница массива равняется нулю.
Замечания
Переменные типа Private доступны только в модуле, в котором они описаны.
Инструкция Private используется для описания типа данных переменной. Например, следующая инструкция описывает переменную типа Integer:
Private NumberOfEmployees As Integer
Инструкция Private применяется также для описания объектного типа переменной. Ниже описывается переменная для нового экземпляра листа электронной таблицы.
Private X As New Worksheet
Если ключевое слово New не используется при описании объектной переменной, то перед использованием объекта необходимо присвоить имеющийся объект с помощью инструкции Set переменной, ссылающейся на этот объект. До присвоения объекта описанная объектная переменная имеет специальное значение Nothing, которое указывает, что переменная не содержит ссылку на какой-либо определенный экземпляр объекта.
Если для переменной не задан тип данных или тип объекта, и в модуле отсутствует инструкция DefТип, переменная по умолчанию получает тип Variant.
Допускается также использование инструкции Private с пустыми скобками для описания динамического массива. После описания динамического массива пользуйтесь в процедуре инструкцией ReDim для определения числа размерностей и элементов этого массива. При попытке переопределить размерность для переменной массива, размеры которого были явным образом заданы в инструкции Private, Public, или Dim, возникает ошибка.
При инициализации переменных числовая переменная получает значение 0, строка переменной длины получает значение пустой строки (""), а строка фиксированной длины заполняется нулями. Переменные типа Variant получают значение Empty. Каждый элемент переменной определяемого пользователем типа получает значение как самостоятельная переменная.
При использовании инструкции Private в процедуре она обычно помещается в начало процедуры.
Пример
В данном примере инструкция Private используется на уровне модуля для объявления переменных личными. Личные переменные доступны только модулю, в котором они объявлены.
Private Number As Integer ' Личная переменная типа Integer. Private NameArray(1 To 5) As String ' Личная переменная-массив. ' Несколько объявлений (Variant, Variant и Integer), все личные. Private MyVar, YourVar, ThisVar As Integer