La función `VarType` en VBA se utiliza para identificar el tipo de datos de una variable. Devuelve un valor que indica el tipo de datos de la variable pasada como argumento. Esto puede ser útil para realizar comprobaciones dinámicas de tipos de datos en tiempo de ejecución. Aquí te explico cómo usarla y algunos ejemplos de uso:
Sintaxis
VarType(variable)
Donde `variable` es la variable cuyo tipo deseas determinar.
Valores Devueltos
La función `VarType` devuelve un entero que corresponde a un tipo de datos específico. Algunos de los valores devueltos comunes son:
- `0`: Empty (Variable no inicializada)
- `1`: Null (Sin datos válidos)
- `2`: Integer
- `3`: Long
- `4`: Single
- `5`: Double
- `6`: Currency
- `7`: Date
- `8`: String
- `9`: Object
- `10`: Error
- `11`: Boolean
- `12`: Variant
- `13`: DataObject
- `17`: Byte
- `8192`: Array (Se indica con un OR bit a bit con el valor del tipo, por ejemplo, 8204 para un array de Integer)
Ejemplo de Uso
Sub EjemploVarType()
Dim miVariable As Variant
Dim tipoVariable As Integer
miVariable = 10
tipoVariable = VarType(miVariable)
Debug.Print "El tipo de miVariable es: "; tipoVariable ' Debería imprimir 2 (Integer)
miVariable = "Hola"
tipoVariable = VarType(miVariable)
Debug.Print "El tipo de miVariable es: "; tipoVariable ' Debería imprimir 8 (String)
miVariable = Now
tipoVariable = VarType(miVariable)
Debug.Print "El tipo de miVariable es: "; tipoVariable ' Debería imprimir 7 (Date)
miVariable = Array(1, 2, 3)
tipoVariable = VarType(miVariable)
Debug.Print "El tipo de miVariable es: "; tipoVariable ' Debería imprimir 8204 (Array de Integer, si se interpreta el array como de Integer)
End Sub
Este código declara una variable como `Variant` y cambia su valor varias veces, usando luego la función `VarType` para determinar el tipo de datos actual de la variable. Los resultados se imprimen en la ventana de depuración.
Recuerda que `VarType` es especialmente útil cuando trabajas con datos que pueden cambiar de tipo en tiempo de ejecución, ya que te permite manejar esos cambios de manera adecuada en tu lógica de código.