Este artigo demonstrará o uso da função VarType no VBA.
VarType significa tipo de variável. Podemos fornecer o nome da variável para a função VarType, e ela retornará um inteiro que representa o tipo de dados armazenados nessa variável de acordo com uma lista de constantes VBA.
Usando uma Variant Variable para encontrar o VarType
Podemos declarar uma variável como uma variável Variant. Isso nos permitirá armazenar qualquer tipo de dados permitidos nele. Podemos então preencher essa variável e usar a função VarType para ver que tipo de dados está na variável.
Por exemplo:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = "Hello World"MsgBox "O tipo de variável é" & VarType (MyVariable)End Sub |
Isso retornará a seguinte caixa de mensagem:
O valor de 8 é, portanto, retornado. Isso em uma constante do Excel que define o tipo de dados que são armazenados na variável.
Este valor constante corresponde à tabela abaixo:
Constante | Valor | Descrição |
---|---|---|
vbEmpty | 0 | Vazio (não inicializado) |
vbNull | 1 | Nulo (sem dados válidos) |
vbInteger | 2 | Inteiro |
vbLong | 3 | Inteiro longo |
vbSingle | 4 | Número de ponto flutuante de precisão única |
vbDouble | 5 | Número de ponto flutuante de precisão dupla |
vbCurrency | 6 | Valor da moeda |
vbDate | 7 | Valor da data |
vbString | 8 | Fragmento |
vbObject | 9 | Objeto |
vbError | 10 | Valor de erro |
vbBoolean | 11 | Valor booleano |
vbVariant | 12 | Variante (usado apenas com matrizes de variantes) |
vbDataObject | 13 | Um objeto de acesso a dados |
vbDecimal | 14 | Valor decimal |
vbByte | 17 | Valor de byte |
vbLongLong | 20 | LongLong inteiro (válido apenas em plataformas de 64 bits) |
vbUserDefinedType | 36 | Variantes que contêm tipos definidos pelo usuário |
vbArray | 8192 | Array (sempre adicionado a outra constante quando retornado por esta função) |
Podemos tentar outro exemplo:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = 32760MsgBox "O tipo de variável é" & VarType (MyVariable)End Sub |
Desta vez, a caixa de mensagem retornará 2, pois o tipo de dado armazenado na variável é inteiro.
No entanto, se alterarmos o valor para 32780, o valor de retorno será 3 - Inteiro longo, pois o tipo de dados Inteiro tem um valor máximo de 32767; após o qual é um número inteiro longo.
Se formos mais uma vez alterar o código:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = 32760.52MsgBox "O tipo de variável é" & VarType (MyVariable)End Sub |
Agora obteríamos um valor de 5 sendo retornado - o tipo de dados é Double devido às casas decimais.
Se colocássemos o valor na variável entre aspas, mais uma vez um 8 seria retornado, pois qualquer valor contido entre aspas é armazenado como um valor de string.
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = "32760.52"MsgBox "O tipo de variável é" & VarType (MyVariable)End Sub |