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.