Tipo de dados Variant

O tipo de dados Variant é o tipo de dados para todas as variáveis que não são declaradas explicitamente, assim como outros tipos (usando instruções como Dim, Private, Public ou Static).

O tipo de dados Variant não tem caractere de declaração de tipo.

Um Variant é um tipo de dados especial que pode conter qualquer tipo de dados, exceto dados de String de duração fixa. (Os tipos Variant agora são compatíveis com tipos definidos pelo usuário.) Um Variant também pode conter os valores especiais Empty, Error, Nothing e Null. Para determinar como os dados em um Variant são tratados, use as funções VarType ou TypeName.

Use a função VarType para testar que tipo de dados é mantido em um Variant.

Os dados numéricos podem ser qualquer número inteiro ou valor de número real que varie de -1.797693134862315E308 a -4.94066E-324 para valores negativos e de 4.94066E-324 a 1.797693134862315E308 para valores positivos.

Em geral, dados numéricos de Variant são mantidos no tipo de dados original no Variant. Por exemplo, se você atribuir um Integer a um Variant, as operações subsequentes tratarão o Variant como um Integer. No entanto, se uma operação aritmética for executada em um Variant que contém um Byte, um Integer, um Long ou um Single e o resultado exceder o intervalo normal para o tipo de dados original, o resultado será promovido no Variant para o maior tipo de dados seguinte. Um Byte é promovido a um Integer, um Integer é promovido a um Long e um Long e um Single são promovidos a um Double.

Ocorre um erro quando variáveis Variant que contêm valores Currency, Decimal e Double excedem os respectivos intervalos.

Use o tipo de dados Variant no lugar de qualquer tipo de dados para trabalhar com dados de maneira mais flexível. Se o conteúdo de uma variável Variant consistir em dígitos, eles poderão ser a representação em cadeia de caracteres dos dígitos ou o valor real deles, dependendo do contexto. Por exemplo:

Dim MyVar As Variant 
MyVar = 98052 

No exemplo anterior, MyVar contém uma representação numérica – o valor real 98052. Os operadores aritméticos funcionam como esperado em variáveis Variant que contêm valores numéricos ou dados de cadeia de caracteres que possam ser interpretados como números. Se você usar o operador + para adicionar MyVar a outra Variant que contém um número ou uma variável de um tipo numérico, o resultado será uma soma aritmética.

O valor Empty indica uma variável Variant que não foi inicializada (atribuída a um valor inicial). Um Variant com Empty será 0 se for usado em um contexto numérico, e será uma cadeia de caracteres de comprimento zero ("") se for usado em um contexto de cadeia de caracteres.

Não confunda Empty com Null. Null indica que a variável Variant não contém dados válidos intencionalmente.

Em um Variant, Error é um valor especial usado para indicar que uma condição de erro ocorreu em um procedimento. No entanto, diferentemente de outros tipos de erros, o tratamento de erro normal no nível do aplicativo não ocorre. Isso permite que você ou o aplicativo em si executem alguma ação alternativa com base no valor do erro. Valores de Error são criados por meio da conversão de números reais em valores de erro usando a função CVErr.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.