Instrução Dim

Declara variáveis e aloca o espaço de armazenamento.

Sintaxe

Dim [ WithEvents ] nomedavariável [ ( [ subscripts ] ) ] [ As [ New ] tipo ] [ , [ WithEvents ] nomedavariável [ ( [ subscripts ] ) ] [ As [ New ] tipo ]] . . .

A sintaxe da instrução Dim tem estas partes:

Parte Descrição
WithEvents Opcional. A palavra-chave que especifica que nomedavariável é uma variável de objeto usada para responder a eventos acionados por um objeto ActiveX. WithEvents é válida somente em módulos de classe. Você pode declarar quantas variáveis individuais quiser usando WithEvents, mas não pode criar matrizes com WithEvents. Você não pode usar New com WithEvents.
nomedavariável Obrigatório. Nome da variável; segue as convenções de nomenclatura padrão para variáveis.
subscritos Opcional. Dimensões de uma variável de matriz; é possível declarar até 60 dimensões múltiplas. O argumento subscrito usa a seguinte sintaxe: [ lower To ] upper [ , [ lower To ] upper ] . . ..

Quando não for explicitamente indicado em inferior, o limite inferior de uma matriz será controlado pela instrução Option Base. O limite inferior será zero se nenhuma instrução Option Base estiver presente.
New Opcional. Palavra-chave que permite a criação implícita de um objeto. Se você usar New ao declarar a variável de objeto, uma nova instância do objeto será criada na primeira referência a ela, para que não seja necessário usar a instrução Set para atribuir a referência ao objeto.

A palavra-chave New não pode ser usada para declarar variáveis de qualquer tipo de dados intrínseco ou declarar instâncias de objetos dependentes, e não pode ser usada com WithEvents.
tipo Opcional. Tipo de dados da variável; pode ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (sem suporte no momento), Date, String (para cadeias de caractere com comprimento variável), String comprimento (para cadeias de caractere de comprimento fixo), Object, Variant, um tipo definido pelo usuário ou um tipo de objeto. Use uma cláusula de tipo As separada para cada variável declarada.

Comentários

Variáveis declaradas com Dim no nível do módulo ficam disponíveis para todos os procedimentos dentro do módulo. No nível do procedimento, as variáveis ficam disponíveis apenas no procedimento.

Use a instrução Dim no nível do módulo ou do procedimento para declare o tipo de dados de uma variável. Por exemplo, a instrução a seguir declara uma variável como um inteiro.

Dim NumberOfEmployees As Integer 

Também usa uma instrução Dim para declarar o tipo de objeto de uma variável. O exemplo a seguir declara uma variável para uma nova instância de uma planilha.

Dim X As New Worksheet 

Se a palavra-chave New não for usada ao declarar uma variável de objeto, a variável que se refere ao objeto deverá receber um objeto existente usando a instrução Set para poder ser usada. Até que seja atribuída a um objeto, a variável de objeto declarada tem o valor especial Nothing, que indica que não se refere a qualquer instância específica de um objeto.

Você também pode usar a instrução Dim com parênteses vazios para declarar uma matriz dinâmica. Após declarar uma matriz dinâmica, use a instrução ReDim dentro de um procedimento para definir o número de elementos e as dimensões na matriz. Se você tentar declarar novamente uma dimensão uma variável de matriz cujo tamanho foi especificado explicitamente em uma instrução Private, Public ou Dim, ocorrerá um erro.

Se você não especificar um tipo de dados ou um tipo de objeto, e não houver uma instrução Def_type_ no módulo, a variável será Variant por padrão. Quando as variáveis são inicializadas, uma variável numérica é inicializada como 0, uma cadeia de caracteres de comprimento variável é inicializada para uma cadeia caracteres de comprimento zero ("") e uma cadeia de caracteres de comprimento fixo é preenchida com zeros. As variáveis Variant são inicializadas para Empty. Os elementos de uma variável de tipo definido pelo usuário são inicializados como se fossem uma variável separada.

Observação

Quando você usa a instrução Dim em um procedimento, geralmente coloca a instrução Dim no início do procedimento.

Exemplo

Este exemplo mostra a instrução Dim usada para declarar variáveis. Também mostra a instrução Dim usada para declarar matrizes. O limite inferior padrão para subscritos de matriz é 0 e pode ser substituído no nível do módulo usando a instrução 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()

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.