Оператор Public

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

Синтаксис

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

Синтаксис оператора Public состоит из следующих частей:

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 для каждой определяемой переменной.

Замечания

Переменные, объявленные с помощью инструкции Public , доступны всем процедурам во всех модулях во всех приложениях, если только не действует параметр Private Module ; в этом случае переменные являются общедоступными только в проекте , в котором они находятся.

Оператор Public нельзя использовать в модуле класса для объявления строковых переменных фиксированной длины.

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

Public NumberOfEmployees As Integer 

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

Public X As New Worksheet 

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

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

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

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

Пример

В этом примере оператор Public используется на уровне модуля (раздел General) стандартного модуля для явного объявления общих переменных, которые доступны всем процедурам во всех модулях и приложениях, для которых не действует параметр Option Private Module.

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

См. также

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

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