Função VarType do Excel VBA
VBA VARTYPE significa “Tipo de variável”. Esta função nos ajuda a identificar o tipo de dado atribuído à variável específica ou, em palavras simples, podemos dizer que encontra que tipo de valor é armazenado ou atribuído à variável.
Sintaxe
VarName: Precisamos apenas fornecer o nome da variável para encontrar os dados armazenados no nome da variável fornecida.
Portanto, ele recebe o nome da variável como sintaxe ou argumento e, na saída, retorna o tipo de dados atribuído à variável ou o tipo de dados armazenados na variável.
Então, se você já se perguntou como encontrar o tipo de dados da variável ou o tipo de dados atribuídos à variável, aqui temos uma função VBA “VarType”.
Exemplos
Exemplo 1
No VBA, ao escrever o código, geralmente declaramos variáveis e atribuímos um tipo de dados a elas. Por exemplo, observe o código VBA abaixo.
Código:
Sub VarType_Example () Dim MyVar As String MyVar = "Hello" End Sub
No exemplo acima, declaramos a variável como "String" e, para essa string, atribuímos o valor como "Hello".
Este é um caso simples, mas também é possível declarar as variáveis sem atribuir as variáveis a elas, então, nesses casos, a função VarType nos ajuda.
Código:
Sub VarType_Example () Dim MyVar MyVar = "Hello" End Sub
No código acima, não atribuímos nenhum tipo de dados, mas atribuímos imediatamente o valor como “Hello”, portanto, usando a função VarType, podemos encontrar o tipo de dados da variável.
Abra o MSGBOX na codificação VBA no código acima.
Em seguida, abra a função VarType.
Agora insira o nome da variável como o argumento da função VARTYPE.
Código:
Sub VarType_Example () Dim MyVar MyVar = "Olá" MsgBox VarType (MyVar) End Sub
Agora execute o código e veja o que temos na caixa de mensagem.
Obtivemos o resultado 8 porque o VBA tem certos códigos para cada tipo de tipo de dado variável, portanto, abaixo está a lista detalhada para você.
| Valor | Constante | Descrição | ||
| 0 | vbEmpty | A variável ainda não foi inicializada | ||
| 1 | vbNull | Dados inválidos atribuídos | ||
| 2 | vbInteger | O valor da variável é do tipo de dados “Inteiro” | ||
| 3 | vbLong | O valor da variável é o tipo de dados “Longo” | ||
| 4 | vbSingle | O valor da variável é o tipo de dados “Único” | ||
| 5 | vbDouble | O valor da variável é o tipo de dados “Duplo” | ||
| 6 | vbCurrency | O valor da variável é o tipo de dados “Moeda” | ||
| 7 | vbDate | O valor da variável é o tipo de dados “Data” | ||
| 8 | vbString | O valor da variável é o tipo de dados “String” | ||
| 9 | vbObject | O valor da variável é o tipo de dados “Objeto” | ||
| 10 | vbError | O valor da variável é Error Value | ||
| 11 | vbBoolean | O valor da variável é o tipo de dados “Booleano” | ||
| 12 | vbVariant | O valor da variável é o tipo de dados “Variante” (usado apenas com matrizes de variantes) | ||
| 13 | vbDataObject | O valor da variável é o objeto de acesso a dados | ||
| 14 | vbDecimal | O valor da variável é o tipo de dados “Decimal” | ||
| 17 | vbByte | O valor da variável é o tipo de dados “Byte” | ||
| 20 | vbLongLong | O valor da variável é o tipo de dados “LONG LONG” (válido apenas em plataformas de 64 bits) | ||
| 36 | vbUserDefinedType | O valor da variável é o tipo de dados “Definido pelo usuário” | ||
| 8192 | vbArray | O valor da variável é Array. |
Ok, agora nosso código ajustou novamente o tipo de dados da variável como 8, ou seja, o nome da variável “MyVar” contém o tipo de dados “String”.
Exemplo # 2
Agora, olhe para o código abaixo.
Código:
Sub VarType_Example2 () Dim MyVar Set MyVar = ThisWorkbook MsgBox VarType (MyVar) End Sub
Vamos executar este código e ver qual é o resultado.
O resultado é 9, ou seja, a variável continha o tipo de dados “Objeto”. Sim, está correto porque, para a variável “MyVar”, definimos a referência da pasta de trabalho “Esta pasta de trabalho”.
Exemplo # 3
Agora, olhe para o código abaixo.
Código:
Sub VarType_Example3 () Dim MyVar MyVar = 32500 MsgBox VarType (MyVar) End Sub
Isso retornará o resultado como 2.
Porque o número 32500, que é atribuído à variável, é um valor “Inteiro”.
Agora vou alterar o valor para 40000 e ver o resultado.
Código:
Sub VarType_Example4 () Dim MyVar MyVar = 40000 MsgBox VarType (MyVar) End Sub
Isso dará o resultado como 3.
Como o valor inteiro está terminando em 32767, qualquer coisa acima disso será tratada como um tipo de dados VBA LONG.
Agora vou colocar o número entre aspas duplas.
Código:
Sub VarType_Example5 () Dim MyVar MyVar = "40000" MsgBox VarType (MyVar) End Sub
Execute o código e veja o resultado.
Obtivemos o resultado como 8, ou seja, tipo de dados String.
Isso ocorre porque qualquer coisa fornecida entre parênteses será tratada como uma variável String.
Coisas para lembrar
- VARTYPE significa “Tipo de Variável”.
- O tipo de dados é representado por números exclusivos, portanto, consulte a tabela para entender qual número representa qual tipo de dado variável.








