Оператор Dim

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

Синтаксис

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

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

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

Замечания

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

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

Dim NumberOfEmployees As Integer 

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

Dim X As New Worksheet 

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

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

Если тип данных или тип объекта не указан, а инструкция 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 и обратная связь.