vba data types numeric
Este tutorial explica vários tipos de dados numéricos e não numéricos disponíveis no VBA. Também aprenderemos sobre conversões de tipo de dados :
Encontramos muitos tipos de dados todos os dias, como nome, data, contas, preço de uma mercadoria, etc. Todos esses dados pertencem a um determinado tipo e seus valores não podem diferir do tipo anexado a ele. Da mesma forma, o VBA tem muitos tipos de dados que são usados para executar a ação necessária.
Neste tutorial, aprenderemos os diferentes tipos de dados usados no VBA e veremos como eles ajudarão na organização de nosso programa. Também veremos como converter um tipo de dados em outro tipo de dados.
=> Verifique TODOS os tutoriais de VBA aqui
O que você aprenderá:
- Categorias de tipos de dados
- Conclusão
Categorias de tipos de dados
O tipo de dados informa ao computador o tipo de dados que precisa ser armazenado usando uma variável. Os tipos de dados são divididos em 2 categorias, ou seja, tipos de dados numéricos e não numéricos
Tipos de dados numéricos
Esses tipos são usados para realizar operações matemáticas como adição, subtração, etc. Exemplo, cálculo de porcentagem, preço de ação, taxas, contas, idade, etc.
No VBA, existem 7 tipos de tipos de dados numéricos, conforme mencionado abaixo.
Tipo de dados numéricos | |
---|---|
7 | Decimal |
1 | Byte |
dois | Inteiro |
3 | Longo |
4 | Solteiro |
5 | Dobro |
6 | Moeda |
Vamos dar uma breve olhada em todos os tipos de dados numéricos.
# 1) Tipo de dados de byte
Este tipo de dados requer apenas um byte de memória. Variáveis com tipo de dados Byte podem armazenar valores de 0 a 255. O valor de byte padrão é 0. Valores negativos e valores maiores que 255 não são permitidos. Caso você tente atribuir valores inválidos, um erro de estouro será retornado.
Sintaxe: Dim Vname As Byte
Aqui, Vname é um nome de variável e Byte é o tipo de dados da variável.
Exemplo:
Sub ByteDTtest() Dim vname1 As Byte vname1 = 10 MsgBox 'Value of vname1 is : “ &vname1 End Sub
A saída é fornecida abaixo
# 2) Tipo de dados inteiro
Esses tipos de dados são usados para armazenar o valor inteiro inteiro. Isso ocupa 2 bytes de memória. Um número inteiro é um dos tipos de dados usados com frequência. Eles aceitam valores positivos, valores negativos e zero também. Eles variam entre -32.768 a 32.767.
Sintaxe: Dim ignites As Integer
Exemplo:
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
A saída é fornecida abaixo
# 3) Tipo de dados longos
Esta é uma alternativa para um tipo de dados inteiro que também armazena um valor inteiro inteiro. No entanto, ele ocupa mais memória do que uma variável inteira que é de 4 bytes. Tem um intervalo de valores de -2.147.483.648 a 2.147.483.648
Sintaxe: Dim vname As Long
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
Se você executar o código acima com uma variável inteira, obterá um erro de estouro porque há 1048576 linhas no Excel e o tipo de dados Integer só suporta até 32.767. Conforme mostrado abaixo, quando o tipo de dados é longo, um resultado apropriado é mostrado.
Mas quando o tipo de dados é um inteiro, um erro de estouro é gerado.
# 4) Tipo de dados decimais
Este é um tipo de dados numérico exato usado para sua precisão. Esse é o número total de dígitos e o número de dígitos à direita da vírgula decimal, denominado fator de escala.
No VBA, os números são escalados por uma potência de 10. É apropriado usar esses tipos enquanto manipula grandes números que precisam de um valor preciso. Isso ocupa 14 bytes na memória.
Mas as variáveis não podem ser declaradas diretamente como um tipo de dados decimal. Para usar Decimal, você deve usar a função de conversão CDec. Você precisa usar um tipo de dados Variant.
Este tipo de dados contém o intervalo de valores abaixo.
+/- 79.228.162.514.264.337.593.543.950.335 sem casa decimal
+/- 7,9228162514264337593543950335 com 28 casas decimais à direita do decimal.
O menor valor diferente de zero aceito é +/- 0,0000000000000000000000000001.
Sintaxe: Dim ignites As variant
Sub DecimalDataTypeTest() Dim DecValue As Variant DecValue = CDec(1000.4560323034) MsgBox 'Data type of Decvalue variable is : ' & TypeName(DecValue) & ' value ' & DecValue End Sub
Nota: A função TypeName dará o nome do tipo de dados
Resultado:
como escrever casos de teste para aplicação web com exemplo
# 5) Tipo de dados único
Este tipo de dados é usado para armazenar números com ponto flutuante de precisão única. Ocupa 4 bytes de memória. O valor padrão é 0 e armazena valores decimais. Você pode usar o ponto de exclamação (!) Ao declarar uma variável como mostrado na sintaxe abaixo.
Os intervalos de valores aceitos são:
3.402823E38 a -1.401298E-45 para valores negativos
1.401298E-45 a 3.402823E38 para valores positivos.
Sintaxe
Dim VariableName como Single
ou
Dim VariableName!
Sub SingleDataTypeTest() Dim SingleVal1 As Single Dim SingleVal2! SingleVal1 = 123 SingleVal2 = 333.44 MsgBox ('Data type of SingleVal1 is ' & TypeName(SingleVal1) & ' with value ' & SingleVal1 & ' and datatype of SingleVal2 is ' & TypeName(SingleVal2) & ' with value ' & SingleVal2) End Sub
# 6) Tipo de dados duplo
Os dados do VBA duplo podem ser usados para armazenar inteiros e frações. Double é usado para armazenar números com ponto flutuante de precisão dupla. Ele ocupa 8 bytes de memória e possui uma gama de valores.
-1,79769313486231E308 a -4,94065645841247E-324 para valores negativos
4.94065645841247E-324 a 1.79769313486232E308 para valores positivos
Como o tipo de dados Single, double também pode ser declarado usando um símbolo que é Hash (#) conforme mostrado abaixo.
Sintaxe
Dim VariableName as Double
ou
Dim VariableName #
Sub DoubleDataTypeTest() Dim douValue As Double Dim douVal1# douValue = 100.21 douVal1 = 333.44 MsgBox ('Data type of douValue is ' & TypeName(douValue) & ' with value ' & douValue & ' and datatype of douVal1 is ' & TypeName(douVal1) & ' with value ' & douVal1) End Sub
# 7) Tipo de dados de moeda
Este tipo de dados pode ocupar até 8 bytes de tamanho de armazenamento. Este tipo de dado fornece o valor exato, ao contrário dos tipos de dados simples e duplos que já discutimos são arredondados. Eles são úteis para cálculos monetários.
O tipo de dados de moeda pode armazenar valores positivos e negativos. Eles podem armazenar 15 dígitos à esquerda do decimal e 4 dígitos à direita.
O intervalo permitido é de -922.337.203.685.477.5808 a 922.337.203.685.477,5807. Você pode usar @ para declarar tipos de dados de moeda.
Sintaxe
Dim VariableName como moeda
ou
Dim VariableName @
Sub CurrencyDataTypeTest() Dim val1 As Currency Dim Val2@ val1 = 123 Val2 = 333.44 MsgBox ('Data type of Val1 is ' & TypeName(val1) &” with value “ &val1 & ' and datatype of Val2 is ' & TypeName(Val2) & “ with value “ &val2) End Sub
Resultado:
Observação :Se o valor da variável exceder o intervalo fornecido para um determinado tipo de dados, um erro de estouro será gerado.
Considere o exemplo simples do tipo de dado byte excedendo seu intervalo. O mesmo erro será exibido se você inserir valores negativos para o tipo de dados de byte.
download grátis do aplicativo conversor do youtube para mp3
Tipos de dados não numéricos
Esses são dados que não podem ser manipulados por operadores aritméticos. Eles são compostos por Texto, Sequência, Data, etc. Abaixo estão os tipos de dados não numéricos com suporte no VBA.
Tipo de dados não numéricos | |
---|---|
7 | Variante (caracteres) |
1 | String (comprimento fixo) |
dois | String (comprimento variável) |
3 | Encontro |
4 | boleano |
5 | Objeto |
6 | Variante (Números) |
# 1) Tipo de dados booleano
Este tipo de dados requer 2 bytes de memória e pode armazenar apenas 2 valores, ou seja, VERDADEIRO ou FALSO. Em outras palavras, a variável booleana só pode obter o valor TRUE ou FALSE, alternativamente 1 ou 0, respectivamente. O valor padrão de uma variável booleana é False.
Sintaxe - Dim Vname As Boolean
Exemplo:
Sub BooleanDataTypeTest() Dim bval1 As Boolean MsgBox ('datatype of variable bval1 is :' & TypeName(bval1) & ' default value of boolean varible is ' & bval1) End Sub
# 2) Tipo de dados de data
Este tipo de dados é usado para representar a data e hora. Tem valores de intervalo de datas de 1º de janeiro de 0100 a 31 de dezembro de 9999 e valores de tempo de 0:00:00 a 23:59:59 e ocupa 8 bytes de tamanho de armazenamento.
Sintaxe: Dim inflama como data
Sub DateDataTypeTest() Dim datetime As Date datetime = Now MsgBox 'Current date and time is ' & datetime End Sub
Nota: Agora a função fornece a data e hora atuais
# 3) Tipo de dados string
Este tipo de dados é usado para armazenar o valor da string. A string é definida como uma sequência de caracteres. Portanto, você pode usar o tipo de dados String para armazenar texto e pode ser usado para armazenar números, caracteres especiais, se espaços de eventos. Um valor de string deve ser incorporado entre aspas duplas “”.
Existem 2 tipos de tipo de dados String.
# 1) String de comprimento variável: Este tipo ocupa 10 bytes de tamanho de armazenamento mais a memória necessária para a string que é o comprimento da string. Eles têm um valor de faixa de 0 a aproximadamente 2 bilhões.
# 2) String de comprimento fixo: Ele ocupa a memória igual ao comprimento do próprio string. Pode variar de 1 a aproximadamente 65.400 caracteres
Sintaxe: Dim Vname As String
Exemplo:
Sub StringDataTypeTest() Dim sVal1 As String sVal1 = 'Text1234#$@ and Spaces:)' MsgBox 'I can accept anything ' & sVal1 End Sub
# 4) Tipo de dados do objeto
O objeto terá uma referência a um objeto de qualquer tipo, ou seja, o tipo de dados do objeto pode apontar para qualquer tipo de dados como string, double, inteiro, etc. armazenado. Ocupa 4 bytes de memória do computador. O valor padrão de um objeto é uma referência nula.
Sintaxe: Dim VName como objeto
Exemplo:
Sub ObjectDataTypeTest() Dim wsActiveSheet As Object Set wsActiveSheet = ActiveSheet wsActiveSheet.UsedRange.Clear End Sub
Isso limpará todas as células usadas na planilha atual.
# 5) Tipo de dados variante
Este é o tipo de dados universal do VBA, ele pode aceitar qualquer tipo de dados numéricos e não numéricos. O tipo de dados variante oferece mais flexibilidade ao trabalhar com dados. O tipo de dados variante usa mais tamanho de armazenamento do que qualquer outro tipo de dados. Se você não mencionar um tipo de dados, o VBA tratará isso como uma variável Variant.
Existem 2 tipos de tipos de dados Variant
# 1) Variante (números): Isso pode conter qualquer valor numérico até o intervalo de Double. Os números Variant ocupam 16 bytes de tamanho de armazenamento.
# 2) Variante (caracteres): Isso pode conter o mesmo intervalo que para String de comprimento variável. Os caracteres Variant ocupam 22 bytes + comprimento de string (24 bytes em sistemas de 64 bits)
Sintaxe
Dim VName como variante
ou
Dim VName
Exemplo:
Sub VariantDataTypeTest() Dim EmpName As Variant Dim DOB Dim Salary As Variant EmpName = 'Jofn kim' DOB = #10/3/2020# Salary = 55000 MsgBox EmpName & ' ' & DOB & ' ' & Salary End Sub
Conversão de Tipo de Dados
Às vezes, é necessário converter o tipo de dados de uma variável em algo específico em nosso caso de uso.
Exemplo: Você recupera um valor de uma célula, que geralmente é uma string e, portanto, precisa convertê-lo em um tipo de dados numérico antes de realizar qualquer operação aritmética. Para conseguir isso, o VBA tem funções de conversão de tipo para todos os tipos de dados suportados.
# 1) CBool
Esta função é usada para converter uma expressão em um tipo de dados booleano. Se a expressão retornar zero, CBool retornará False, qualquer valor diferente de zero, CBool retornará True.
Sub CBooleanTest() Dim val1 As Integer Dim strval2 As String val1 = 0 MsgBox CBool(val1) val1 = 177 MsgBox CBool(val1) strval2 = 'A' MsgBox CBool(strval2 = 'B') MsgBox CBool(strval2 'B') End Sub
O código acima retornará resultados como False, True, False, True.
Você pode tentar por si mesmo, desenhar um botão de comando de controle ActiveX, clicar com o botão direito -> Exibir código e inserir o código acima. Clique no botão Comando e o resultado será exibido. (Desative o modo de design)
Resultado
# 2) CByte
Esta função é usada para converter uma expressão em um tipo de dados Byte. Lembre-se, após a conversão, se o intervalo exceder o intervalo permitido para Byte, um erro de estouro será gerado.
Sub cbyteTest() Dim val1 As Double Dim val2 val1 = 125.5678 val2 = CByte(val1) MsgBox ('DataType is ' & TypeName(val2) & ' and value of val2 is ' & val2) End Sub
Nota: Se você der o valor como 255,56. O compilador retornará um erro de estouro
# 3) CCur
Esta função converterá uma expressão em um tipo de dados de moeda.
Sub ccurTest() Dim val1 As Integer Dim val2 val1 = 5544 val2 = CCur(val1 / 5) MsgBox ('DataType is ' & TypeName(val2) & ' and value of val2 is ' & val2) End Sub
# 4) CDate
Esta função irá converter uma string em uma data. Suponha que você recupere o valor de Date como uma String de uma célula do Excel, então você precisa convertê-lo antes de realizar qualquer ação adicional. Você pode usar CDate.
Sub CDateTest() Dim val1, val2, val3 As String Dim Res1, Res2, Res3 val1 = '12:21' val2 = '23/09 12:12' val3 = 'Sep 23, 2020' Res1 = CDate(val1) Res2 = CDate(val2) Res3 = CDate(val3) MsgBox 'Date of val1 is : ' & Res1 & ' Date of val2 is : ' & Res2 & ' Date of val3 is ' & Res3 End Sub
# 5) CDbl
A função CDbl é usada para converter uma expressão em um tipo de dados Double.
Sub CDblTest() Dim val1 As String Dim val2 As Integer Dim Res1 val1 = 10000.12345 val2 = 1222.222 Res1 = CDbl(val1) Res2 = CDbl(val2) MsgBox 'Double value after converting String : ' & Res1 & ' Double value after converting Integer : ' & Res2 End Sub
# 6) CDec
Esta função converterá um valor numérico em decimal.
Sub CDecTest() Dim Val1 As Currency Dim Result Val1 = 1234566.56366 Result = CDec(Val1) ‘Result is 1234566.5637 MsgBox 'Decimal Data Type Value : ' & Result End Sub
# 7) CInt
A função CInt converterá um valor em um tipo de dados inteiro.
Sub CintTest() Dim Val1 As Double Dim Result Val1 = 2345.5678 Result = CInt(Val1) 'Result is 2346 MsgBox 'Integer value of converting is : ' & Result & ' and datatype of Result is ' & TypeName(Result) End Sub
# 8) CLng
Esta função é usada para converter um valor para um tipo de dados longos
Sub cLngTest() Dim Val1, Val2 As Double Dim Res1, Res2 Val1 = 45457.35 Val2 = 45457.65 Res1 = CLng(Val1) Res2 = CLng(Val2) MsgBox 'Result after converting Res1 is ' & Res1 & ' and Res2 value is ' & Res2 End Sub
# 9) CSng
Esta função irá converter um valor em um único tipo de dados
Sub cSngTest() Dim Val1, Val2 As Double Dim Res1, Res2 Val1 = 75.3421115 Val2 = 75.3421555 Res1 = CSng(Val1) ' Result is 75.34211. Res2 = CSng(Val2) ' Result is 75.34216. MsgBox 'Result after converting Res1 is ' & Res1 & ' and Res2 value is ' & Res2 End Sub
# 10) CStr
Esta função é usada para converter um valor numérico em um tipo de dados de string.
Sub CStrTest() Dim Val1 As Double Dim Result Val1 = 123.123 Result = CStr(Val1) 'Result will be 123.123 MsgBox 'Result of Val1 is ' & Val1 End Sub
# 11) CVar
Esta função converterá uma expressão em um tipo de dados Variant.
Sub CVarTest() Dim Val1 As Integer Dim Result Val1 = 1234 Result = CVar(Val1 & 1.12) ' Result will be 12341.12 MsgBox 'Result is ' & Result End Sub
perguntas frequentes
P # 1) Qual é o tipo de dados padrão no VBA?
Responda: A variante é a padrão. Se você não definir um tipo de dados de uma variável, o VBA o trata como uma variável / objeto variante.
P # 2) O que é um erro de incompatibilidade de tipo?
Responda: Este erro será disparado quando você declarar uma variável como um tipo de dados e atribuir um valor inadequado.
Exemplo: Declare uma variável como Inteiro e insira um valor de texto.
P # 3) Como faço para corrigir um erro de estouro?
Responda: Você precisa se referir ao intervalo em que determinado tipo de dados é permitido e certificar-se de inserir um valor dentro do intervalo permitido.
Exemplo: O byte permite apenas 0 a 255, se você inserir qualquer valor negativo ou valor de v superior a 255, você encontrará um erro de estouro.
Conclusão
Neste tutorial, aprendemos sobre os tipos de dados VBA, ou seja, 7 tipos de dados numéricos e 7 não numéricos. Também discutimos como converter um tipo de dados de um tipo para outro com exemplos.
=> Verifique aqui para ver os tutoriais de treinamento A-Z do VBA
Leitura recomendada
- Tutorial do Excel VBA - Introdução ao VBA no Excel
- Tipos de dados C ++
- Tipos de dados Python
- Tipos de dados e variáveis C # com exemplos
- Fundição de tipo C #: conversão de dados explícita e implícita com exemplo
- Tipos de dados de array - int Array, array duplo, Array of Strings etc.
- Tipos de dados MySQL | Quais são os diferentes tipos de dados no MySQL