excel-vba Declarando variables


Ejemplo

Para declarar explícitamente las variables en VBA, use la declaración Dim , seguida del nombre y tipo de la variable. Si se utiliza una variable sin ser declarada, o si no se especifica ningún tipo, se le asignará el tipo Variant .

Use la declaración Option Explicit en la primera línea de un módulo para forzar que todas las variables se declaren antes de su uso (vea SIEMPRE use "Option Explicit" ).

Siempre se recomienda utilizar Option Explicit porque ayuda a prevenir errores tipográficos / ortográficos y garantiza que las variables / objetos sigan siendo su tipo deseado.

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

Se pueden declarar múltiples variables en una sola línea usando comas como delimitadores, pero cada tipo debe declararse individualmente , o se establecerán de forma predeterminada al tipo Variant .

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

Las variables también se pueden declarar utilizando los sufijos de caracteres del tipo de datos ($% &! # @), Sin embargo, su uso está cada vez más desaconsejado.

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

Otras formas de declarar variables son:

  • Static como: Static CounterVariable as Integer

Cuando utiliza la instrucción Estática en lugar de una instrucción Dim, la variable declarada conservará su valor entre las llamadas.

  • Public como: Public CounterVariable as Integer

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

  • Private como: Private CounterVariable as Integer

Las variables privadas solo pueden ser utilizadas por procedimientos en el mismo módulo.

Fuente y más información:

Variables de declaración de MSDN

Tipo de caracteres (Visual Basic)