Оператор Dim

Объявляет переменные и распределяет дисковое пространство.

Синтаксис

Dim [ WithEvents ] varname [ ( [ subscripts ] ] ] [ As [New ] type ] [ [ WithEvents ] varname [ subscripts] ] ] [ As [ New ] type ].


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

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

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

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

Примечания

Переменные, объявляемые с помощью оператора Dim на уровне модуля, доступны всем процедурам внутри этого модуля. На уровне процедуры переменные доступны только внутри соответствующей процедуры.

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

Dim NumberOfEmployees As Integer 

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

Dim X As New Worksheet 

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

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

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

Примечание

Когда оператор Dim используется в процедуре, обычно этот оператор Dim располагают в начале этой процедуры

Пример

В этом примере показывается, как используется оператор Dim для объявления переменных. В нем также показывается, как оператор Dim используется для объявления массивов. Нижний предел по умолчанию для подскрипников массива — 0 и может быть переопределен на уровне модуля с помощью утверждения Option Base.

' AnyValue and MyValue are declared as Variant by default with values 
' set to Empty. 
Dim AnyValue, MyValue 
 
' Explicitly declare a variable of type Integer. 
Dim Number As Integer 
 
' Multiple declarations on a single line. AnotherVar is of type Variant 
' because its type is omitted. 
Dim AnotherVar, Choice As Boolean, BirthDate As Date 
 
' DayArray is an array of Variants with 51 elements indexed, from 
' 0 thru 50, assuming Option Base is set to 0 (default) for 
' the current module. 
Dim DayArray(50) 
 
' Matrix is a two-dimensional array of integers. 
Dim Matrix(3, 4)As Integer 
 
' MyMatrix is a three-dimensional array of doubles with explicit 
' bounds. 
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5)As Double 
 
' BirthDay is an array of dates with indexes from 1 to 10. 
Dim BirthDay(1 To 10)As Date 
 
' MyArray is a dynamic array of variants. 
Dim MyArray()

См. также

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

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