Variant
O tipo de dados Variant é atribuído a todas as variáveis que não foram explicitamente declaradas como sendo de qualquer outro tipo (empregando-se instruções como
Dim, Private, Public, Static).
Ele é um tipo de dado especial que pode conter qualquer tipo de dado (inclusive tipos definidos pelo usuário com a instrução
Type), excetuando-se strings de comprimento fixo. Além disso, é o único tipo de dado que pode conter os valores especiais
Empty,
Error,
Nothing e
Null. Para determinar o tipo de dado atualmente contido em uma variável declarada As Variant, empregue as funções
VarType ou
TypeName.
Dados numéricos podem ser atribuídos a qualquer variável declarada como sendo do tipo Variant variando desde -1.797693134862315E308 a -4.94066E-324 para valores negativos e de 4.94066E-324 a 1.797693134862315E308 para valores positivos.
De forma geral, as variáveis Variant mantêm o tipo original do dado numérico, ou seja, caso você atribua um valor tipo Currency a uma variável Variant, todas as operações subsequentes sobre este valor irão ser efetuados sobre o tipo Currency.
Caso uma operação aritmética qualquer executada sobre o tipo de dado atual exceda o valor original do número atribuído, o tipo contido na variável Variant será promovido para o próximo tipo numérico de mais alto nível disponível (Ex.: Se você atribuir um valor Integer a uma variável Variant e efetuar uma operação de multiplicação sobre ele de forma que o valor resultante seja maior do que 65.536, o tipo de dado será redefinido para Long). Caso uma variável Variant contenha valores dos tipos Currency, Decimal ou Double e o valor contido na variável exceda o limite tolerável para um destes tipos, ocorrerá um erro em tempo de execução.
As variáveis do tipo Variant podem conter qualquer tipo de dado. Números e Strings numéricas são considerados como números, permitindo efetuar operações aritméticas sobre ambos os tipos de dados.
Quando uma variável do tipo Variant é declarada, ela possui o valor
Empty antes que qualquer valor lhe seja atribuído. Caso a variável seja empregada em um contexto numérico (em uma operação aritmética qualquer), o valor
Empty será convertido para zero (0). Da mesma forma, caso seja empregada em uma operação envolvendo strings, o valor
Empty será convertido para uma string vazia ("").
O valor
Null, atribuído ao caractere ASCII = 0 (zero), é diferente do valor Empty. Quando uma variável Variant contém o valor
Null, ela já foi inicializada, indicando ausência de dado válido.
Até a Próxima!!