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.
También puede usar un carácter de tipo de identificador para especificar el tipo de datos. En la instrucción siguiente, x
se declara como Long y y
z
se declara como Integers:
Dim intX&, intY%, intZ as Integer
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
- Resumen de tipo de datos
- Resumen de palabras clave de variables y constantes
- Temas conceptuales de Visual Basic
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.