Declaración de variables

Al declarar variables, normalmente se utiliza una instrucción Dim. Puede colocar una instrucción de declaración dentro de un procedimiento para crear una variable de nivel de procedimiento. O se puede colocar en la parte superior de un módulo, en la sección de declaraciones, para crear una variable de nivel de módulo.

En el siguiente ejemplo, se crea la variable y se especifica el tipo de datos String.

Dim strName As String 

Si aparece esta declaración dentro de un procedimiento, la variable strName puede utilizarse solo en ese procedimiento. Si la instrucción aparece en la sección de declaraciones del módulo, la variable strName está disponible para todos los procedimientos dentro del módulo, pero no para los procedimientos de otros módulos del proyecto.

Para permitir que esta variable esté disponible para todos los procedimientos del proyecto, debe ir precedida de la instrucción Public, como en el ejemplo siguiente:

Public strName As String 

Para obtener más información sobre la nomenclatura de las variables, vea Reglas de nomenclatura de Visual Basic.

Se pueden declarar variables como uno de los siguientes tipos de datos: Booleano, Byte, Entero, Long, Moneda, Single, Double, Fecha, Cadena (para cadenas de longitud variable), longitud de cadena * (para cadenas de longitud fija), Objeto o Variant. Si no se especifica un tipo de datos, el tipo de datos Variant se asigna de forma predeterminada. También puede crear un tipo definido por el usuario con la instrucción Type.

Puede declarar varias constantes en una misma instrucción. Para especificar un tipo de datos, deberá incluir el tipo de datos de cada variable.

En la instrucción siguiente, las variables intX, intY y intZ se declaran como Entero.

Dim intX As Integer, intY As Integer, intZ As Integer 

En la siguiente instrucción, intX y intY se declaran como tipo Variant. Solo intZ se declara como tipo Entero.

Dim intX, intY, intZ As Integer 

No es necesario que proporcione el tipo de datos de la variable en la instrucción de declaración. Si omite el tipo de datos, la variable será de tipo Variant.

La forma abreviada para declarar x y y como Integer en la instrucción anterior es la siguiente:

Dim intX%, intY%, intZ as Integer

El atajo para los tipos es:%-Integer; & largo; @-Currency; #-Double;! -cadena; $ -cadena

Instrucción Public

Use la instrucción Public para declarar variables a nivel del módulo público.

Public strName As String 

Las variables públicas pueden usarse en cualquier procedimiento del proyecto. Si una variable pública se declara en un módulo estándar o un módulo de clase, también se puede usar en cualquier proyecto que haga referencia al proyecto donde se declara la variable pública.

Instrucción Private

Use la instrucción Private para declarar variables a nivel del módulo privado.

Private MyName As String 

Las variables privadas solo las pueden usar los procedimientos del mismo módulo.

Nota:

Cuando se usan en el nivel del módulo, la instrucción Dim equivale a la instrucción Private. Es recomendable usar la instrucción Private para facilitar la lectura y la interpretación del código.

Instrucción Static

Al usar la instrucción Static en lugar de una instrucción Dim para declarar una variable en un procedimiento, la variable declarada mantendrá su valor entre llamadas para ese procedimiento.

Instrucción Option Explicit

Se puede declarar una variable en Visual Basic implícitamente al utilizarla en una instrucción de asignación. Todas las variables declaradas implícitamente son del tipo Variant. Las variables de tipo Variant necesitan más recursos de memoria que la mayoría de las otras variables. La aplicación será más eficaz si se declaran las variables explícitamente y con un tipo de datos específico. Declarar explícitamente todas las variables reduce la incidencia de errores de conflicto de nombres y ortográficos.

Si no desea que Visual Basic realice declaraciones implícitas, puede colocar la instrucción Option Explicit en un módulo antes de cualquier procedimiento. Esta instrucción requiere declarar explícitamente todas las variables en el módulo. Si un módulo incluye la instrucción Opción explícita, se producirá un error en tiempo de compilación cuando Visual Basic encuentre un nombre de variable que no se haya declarado anteriormente o que se haya escrito de forma incorrecta.

Puede establecer una opción en su entorno de programación Visual Basic para incluir automáticamente la instrucción Opción explícita en todos los módulos nuevos. Consulte la documentación de la aplicación para obtener ayuda sobre cómo cambiar las opciones del entorno de Visual Basic. Tenga en cuenta que esta opción no cambia el código existente que ha escrito.

Nota:

Se deben declarar explícitamente las matrices fijas y las matrices dinámicas.

Declaración de una variable de objeto para automatización

Al usar una aplicación para controlar los objetos de otra, debe establecer una referencia a la biblioteca de tipos de la otra aplicación. Cuando se establece una referencia, se pueden declarar variables de objeto según el tipo más específico. Por ejemplo, si está en Microsoft Word al establecer una referencia a la biblioteca de tipos de Microsoft Excel, puede declarar una variable de tipo Hoja de cálculo desde Word para representar un objeto de una Hoja de cálculo de Excel.

Si usa otra aplicación para controlar los objetos de Microsoft Access, en la mayoría de los casos se pueden declarar variables de objeto según el tipo más específico. También puede usar la palabra clave Nuevo para crear una nueva instancia de un objeto automáticamente. Sin embargo, puede que tenga que indicar que se trata de un objeto de Microsoft Access. Por ejemplo, al declarar una variable de objeto para representar un formulario de Access dentro de Visual Basic, debe distinguir el objeto Formulario de Access de un objeto Formulario de Visual Basic. Incluya el nombre de la biblioteca de tipos en la declaración de variable, como en el ejemplo siguiente:

Dim frmOrders As New Access.Form 

Algunas aplicaciones no reconocen los tipos de objeto individuales de Access. Incluso si configura una referencia a la biblioteca de tipos de Access desde estas aplicaciones, debe declarar todas las variables de objeto de Access como tipo Objeto. Tampoco puede usar la palabra clave Nuevo para crear una nueva instancia de un objeto.

El siguiente ejemplo muestra cómo declarar una variable para representar una instancia del objeto Aplicación de Access desde una aplicación que no reconoce los tipos de objeto de Access. Después, la aplicación crea una instancia del objeto Aplicación.

Dim appAccess As Object 
Set appAccess = CreateObject("Access.Application")

Para determinar qué sintaxis admite una aplicación, vea la documentación de la aplicación.

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.