Este artículo demostrará el uso de la función VarType en VBA.
VarType significa tipo de variable. Podemos proporcionar el nombre de la variable a la función VarType, y devolverá un número entero que representa el tipo de datos almacenados en esa variable de acuerdo con una lista de constantes de VBA.
Usar una variable variante para encontrar el VarType
Podemos declarar una variable como variable Variant. Esto nos permitirá almacenar en él cualquier tipo de datos permitidos. Luego podemos completar esta variable y usar la función VarType para ver qué tipo de datos hay en la variable.
Por ejemplo:
12345 | Sub TestVarType ()Atenuar MyVariable como varianteMyVariable = "Hola mundo"MsgBox "El tipo de variable es" & VarType (MyVariable)End Sub |
Esto devolverá el siguiente cuadro de mensaje:
Por tanto, se devuelve el valor de 8. Esto en una constante de Excel que define el tipo de datos que se almacenan en la variable.
Este valor constante corresponde a la siguiente tabla:
Constante | Valor | Descripción |
---|---|---|
vbEmpty | 0 | Vacío (sin inicializar) |
vbNull | 1 | Nulo (sin datos válidos) |
vbInteger | 2 | Entero |
vbLong | 3 | Entero largo |
vbSingle | 4 | Número de punto flotante de precisión simple |
vbDouble | 5 | Número de coma flotante de doble precisión |
vbCurrency | 6 | Valor de moneda |
vbDate | 7 | Valor de la fecha |
vbString | 8 | Cuerda |
vbObject | 9 | Objeto |
vbError | 10 | Valor de error |
vbBoolean | 11 | Valor booleano |
vbVariant | 12 | Variante (usado solo con matrices de variantes) |
vbDataObject | 13 | Un objeto de acceso a datos |
vbDecimal | 14 | Valor decimal |
vbByte | 17 | Valor de byte |
vbLongLong | 20 | Entero LongLong (válido solo en plataformas de 64 bits) |
vbUserDefinedType | 36 | Variantes que contienen tipos definidos por el usuario |
vbArray | 8192 | Array (siempre se agrega a otra constante cuando esta función lo devuelve) |
Podemos probar con otro ejemplo:
12345 | Sub TestVarType ()Atenuar MyVariable como varianteMyVariable = 32760MsgBox "El tipo de variable es" & VarType (MyVariable)End Sub |
Esta vez, el cuadro de mensaje devolverá un 2 ya que el tipo de datos que se almacena en la variable es Integer.
Sin embargo, si cambiamos el valor a 32780, entonces el valor devuelto será 3 - Entero largo ya que un tipo de datos Entero tiene un valor máximo de 32767; después de lo cual es un entero largo.
Si tuviéramos que modificar el código una vez más:
12345 | Sub TestVarType ()Atenuar MyVariable como varianteMyVariable = 32760.52MsgBox "El tipo de variable es" & VarType (MyVariable)End Sub |
Ahora obtendríamos un valor de 5 que se devuelve; el tipo de datos es Doble debido a los lugares decimales.
Si pusiéramos el valor de la variable entre comillas, una vez más se devolvería un 8, ya que cualquier valor contenido entre comillas se almacena como un valor de cadena.
12345 | Sub TestVarType ()Atenuar MyVariable como varianteMyVariable = "32760.52"MsgBox "El tipo de variable es" & VarType (MyVariable)End Sub |