Resumo de tipo de dados
Um tipo de dados representa as características de uma variável que determina que tipo de dados ela pode conter. Os tipos de dados incluem os tipos da tabela a seguir, além dos tipos definidos pelo usuário e tipos específicos de objetos.
Definir tipos de dados intrínsecos
A tabela a seguir mostra os serviços de tipos de dados compatíveis, incluindo intervalos e espaços de armazenamento.
Tipo de dados | Espaço de Armazenamento | Intervalo |
---|---|---|
Boolean | 2 bytes | True ou False |
Byte | 1 byte | 0 a 255 |
Collection | Desconhecido | Desconhecido |
Currency (inteiro dimensionado) | 8 bytes | -922.337.203.685.477,5808 a 922.337.203.685.477,5807 |
Date | 8 bytes | -657.434 (1º de janeiro de 100), para 2.958.465 (31 de dezembro de 9999) |
Decimal | 14 bytes | +/-79.228.162.514.264.337.593.543.950.335 sem vírgula decimal +/-7,9228162514264337593543950335 com 28 valores à direita da vírgula decimal O menor número diferente de zero é +/-0,0000000000000000000000000001 |
Dictionary | Desconhecido | Desconhecido |
Double (ponto flutuante de precisão dupla) | 8 bytes | -1,79769313486231E308 a -4,94065645841247E-324 para valores negativos 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos |
Integer | 2 bytes | -32.768 a 32.767 |
Long (Inteiro Long) | 4 bytes | -2.147.483.648 a 2.147.483.647 |
LongLong (Inteiro LongLong) | 8 bytes | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 Válido somente em plataformas de 64 bits. |
LongPtr (Inteiro Long em sistemas de 32 bits, inteiro LongLong em sistemas de 64 bits) | 4 bytes em sistemas de 32 bits 8 bytes em sistemas de 64 bits |
-2.147.483.648 a 2.147.483.647 em sistemas de 32 bits -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 em sistemas de 64 bits |
Object | 4 bytes | Qualquer referência de Object |
Single (ponto flutuante de precisão simples) | 4 bytes | -3,402823E38 a -1,401298E-45 para valores negativos 1,401298E-45 a 3,402823E38 para valores positivos |
String (tamanho variável) | 10 bytes + tamanho da cadeia de caracteres | De 0 a aproximadamente 2 bilhões |
String (tamanho fixo) | Tamanho da cadeia de caracteres | De 1 a aproximadamente 65.400 |
Variant (com números) | 16 bytes | Um valor numérico para o intervalo de uma Double |
Variant (com caracteres) | 22 bytes + tamanho da cadeia de caracteres (24 bytes em sistemas de 64 bits) | Mesmo intervalo da Cadeia de caracteres de tamanho variável |
User-defined (usando Type) | Número obrigatório para os elementos | O intervalo de cada elemento é igual ao intervalo de seu tipo de dados. |
Uma Variant que contém uma matriz exige 12 bytes a mais do que a matriz sozinha.
Observação
As matrizes de todos os tipos de dados exigem 20 bytes de memória mais 4 bytes para cada dimensão de matriz mais o número de bytes ocupados pelos próprios dados. A memória ocupada pelos dados pode ser calculada multiplicando-se o número de elementos dos dados pelo tamanho de cada elemento.
Por exemplo, os dados em uma matriz de dimensão simples, formados por 4 elementos de dados Integer de 2 bytes cada, ocupam 8 bytes. Os 8 bytes exigidos pelos dados somados aos 24 bytes de sobrecarga resultam no requisito de memória total para a matriz de 32 bytes. Em plataformas de 64 bits, o SAFEARRAY usa 24 bits (mais 4 bytes por instrução Dim). O membro pvData é um apontador de 8 bytes que deve se ajustar aos limites de 8 bytes.
Observação
LongPtr não é um tipo de dados verdadeiro porque se transforma em um inteiro Long em ambientes de 32 bits ou LongLong em ambientes de 64 bits. LongPtr deve ser usado para representar valores de apontador e identificador em instruções Declare e permitir a gravação de código portátil que poderá ser executado em ambientes de 32 e 64 bits.
Observação
Use a função StrConv para converter um tipo de dados de cadeia de caracteres para outro.
Caracteres de tipo de identificador
Um conjunto de caracteres de tipo de identificador é fornecido que você pode usar em uma declaração para especificar o tipo de dados de uma variável ou constante. A tabela a seguir mostra os caracteres de tipo de identificador disponíveis com exemplos de uso.
Caractere de tipo de identificador | Tipo de dados | Exemplo |
---|---|---|
% |
Número inteiro | Dim L% |
& |
Long | Dim M& |
^ |
LongLong | Dim N^ |
@ |
Moeda | Const W@ = 37.5 |
! |
Único | Dim Q! |
# |
Duplo | Dim X# |
$ |
Cadeia de caracteres | Dim V$ = "Secret" |
Não existem caracteres de tipo de identificador para os Boolean
tipos de dados , Byte
, Date
, Decimal
Double
, LongPtr
, Object
Variant
ou para tipos de dados compostos, como matrizes, Coleções, Dicionários, estruturas ou tipos definidos pelo usuário.
Em alguns casos, você pode acrescentar o caractere a $
uma função Visual Basic, por exemplo Left$
, em vez de Left
, para obter um valor retornado do tipo String
.
Em todos os casos, o caractere de tipo de identificador deve seguir imediatamente o nome do identificador.
Converter entre tipos de dados
Consulte Funções de conversão de tipo para exemplos de como usar as seguintes funções para coagir uma expressão a um tipo de dados específico: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CLngLng, CLngPtr, CSng, CStr e CVar.
Para os itens a seguir, confira as respectivas páginas de funções: CVErr, Fix e Int.
Observação
CLngLng é válido apenas em plataformas de 64 bits.
Verificar tipos de dados
Para verificar tipos de dados, confira as funções a seguir:
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.