Instrucción Dim

Declara variables y asigna espacio de almacenamiento.

Sintaxis

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

La sintaxis de la instrucción Dim consta de estas partes:

Parte Descripción
WithEvents Opcional. Keyword que especifica que varname es un objeto variable que se usa para responder a eventos activados por un objeto ActiveX. WithEvents solo es válido en módulos de clase. Con WithEvents puede declarar todas las variables individuales que desee, pero no puede crear matrices con WithEvents. No puede usar Nuevo con WithEvents.
varname Obligatorio. Nombre de la variable; sigue las convenciones de nomenclatura de variable estándar.
subscripts Opcional. Dimensiones de una variable de matriz; se pueden declarar hasta 60 dimensiones distintas. El argumento subíndices usa la sintaxis siguiente: [ lowerTo ] upper [ , [ lowerTo ] upper ] . ..

Cuando no se encuentra de manera explícita en lower, el límite inferior de una matriz se controla mediante la instrucción Option Base. El límite inferior es cero si no existe una instrucción Option Base.
Nuevo Opcional. Palabra clave que permite la creación implícita de un objeto. Si usa Nuevo al declarar la variable de objeto, se crea una nueva instancia del objeto en la primera referencia, por lo que no tiene que usar la instrucción Set para asignar la referencia de objeto.

La palabra clave Nuevo no se puede usar para declarar variables de cualquier tipo de datos intrínseco o declarar instancias de objetos dependientes, y tampoco puede usarse con WithEvents.
type Opcional. Tipo de datos de la variable; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no compatible actualmente), Date, String (para cadenas de longitud variable), Longitud de cadena (para cadenas de longitud fija), Object, Variant, un tipo definido por el usuario o un tipo de objeto. Utilice una cláusula Astype independiente para cada variable que declare.

Observaciones

Las variables declaradas con Dim en el nivel de módulo están disponibles para todos los procedimientos dentro del módulo. En el nivel de procedimiento, las variables están disponibles solo en el procedimiento.

Use la instrucción Dim en el nivel de módulo o de procedimiento para declarar el tipo de datos de una variable. Por ejemplo, la siguiente instrucción declara una variable como un Integer.

Dim NumberOfEmployees As Integer 

También puede usar una instrucción Dim para declarar el tipo de objeto de una variable. Lo siguiente declara una variable para una nueva instancia de una hoja de cálculo.

Dim X As New Worksheet 

Si la palabra clave Nuevo no se utiliza al declarar una variable de objeto, la variable que hace referencia al objeto debe tener asignado un objeto existente mediante el uso de la instrucción Set antes de poder usarlo. Hasta que se asigne a un objeto, la variable de objeto declarada tiene el valor especial Nothing, que indica que no hace referencia a ninguna instancia determinada de un objeto.

También puede usar la instrucción Dim con paréntesis vacíos para declarar una matriz dinámica. Después de declarar una matriz dinámica, use la instrucción ReDim dentro de un procedimiento para definir el número de elementos y dimensiones de la matriz. Si intenta volver a declarar una dimensión para una variable de matriz cuyo tamaño se especificó explícitamente en una instrucción Private, Public o Dim, se produce un error.

Si no especifica un tipo de datos o de objeto, y no hay ninguna instrucción Def_type_ en el módulo, la variable es Variant de forma predeterminada. Cuando las variables se inicializan, se inicializa una variable numérica en 0, se inicializa una cadena de longitud variable en cadena de longitud cero ("") y se completa con ceros una cadena de longitud fija. Las variables Variant se inicializan enEmpty. Cada elemento de una variable de tipo definido por el usuario se inicializa como si fuese una variable independiente.

Nota:

Cuando usa la instrucción Dim en un procedimiento, normalmente la instrucción Dim se coloca al principio.

Ejemplo

Este ejemplo muestra cómo usar la instrucción Dim para declarar variables. También muestra cómo usar la instrucción Dim para declarar matrices. El límite inferior predeterminado para subíndices de matriz es 0 y se puede reemplazar en el nivel de módulo mediante la instrucción 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()

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.