Tipo é uma declaração em VBA que é usada para definir variáveis semelhantes à função DIM, ela é usada no nível definido pelo usuário onde temos um ou mais valores em uma variável, há duas nomenclaturas para declaração de tipo que é pública ou privada. estes são opcionais para uso, mas o nome da variável e o nome do elemento são obrigatórios.
O que é declaração de tipo no Excel VBA?
A declaração de tipo VBA é usada para definir variáveis sob um único nome de grupo com diferentes tipos de dados atribuídos a cada variável. Isso nos ajuda a agrupar várias variáveis em um único objeto para usá-las com o nome de tipo definido.
Ao declarar a instrução Type, podemos evitar o uso de módulos Class no VBA. Não precisa de nenhum módulo de string porque pode ser embutido em módulos já existentes que podem nos economizar espaço.
Em um dos artigos anteriores, discutimos o “VBA ENUM” para agrupar todas as variáveis sob o nome de grupo único.
Por exemplo, se você tem um nome de grupo chamado “Mobiles”, temos membros do grupo como “Redmi, Oppo, Vivo, Samsung, LG e etc.” Portanto, a declaração Enum podemos agrupar com seus respectivos valores.
Enum Mobiles
Redmi = 12000
Oppo = 18000
Vivo = 18000
Samsung = 25000
LG = 15000
End Enum
Assim, criamos enumerações nesse artigo. O problema com a instrução Enum, pois ela pode conter apenas um tipo de dados LONG. Para agrupar variáveis com diferentes tipos de dados, podemos usar a “Instrução VBA TYPE”. Neste artigo, mostraremos como construir uma instrução Type no VBA. Leia…
Sintaxe
Antes de declarar variáveis usando a instrução Type, dê uma olhada na sintaxe:
Tipo Nome do Grupo [Variável 1] como Tipo de Dados Variável [Variável 2] como Tipo de Dados Variáveis [Variável 3] como Tipo de Dados Variáveis [Variável 4] como Tipo de Dados Variáveis [Variável 5] como Tipo de Dados Variáveis Tipo Final
Esses tipos de instruções podem ser declarados no módulo, bem como na parte superior do módulo, como nossas Variáveis globais no VBA.
O tipo VBA pode conter variáveis de objeto, ele pode conter matrizes. No entanto, não pode conter procedimentos, funções.
Exemplo de declaração de tipo em VBA
Você pode baixar este modelo de declaração de tipo VBA aqui - modelo de declaração de tipo VBAOk, vamos começar o processo de declaração de variáveis com a instrução Type. Veremos o mesmo exemplo de declaração de marcas de celular como usamos no VBA Enum.
Passo 1: No topo do módulo comece a palavra “Tipo” e dê um nome para Tipo de grupo.
Código:
Tipo MobileBrands End Type
Etapa 2: em marcas de celular, o que geralmente vemos. Vemos o Nome primeiro, então declare a variável como Nome como String.
Código:
Digite o nome MobileBrands como tipo de final de string
Passo 3: Após o nome, verificamos a data de lançamento. Declare a variável como LaunchDate como Date.
Código:
Digite o nome de MobileBrands como string LaunchDate como tipo de data final
Etapa 4: O próximo passo é verificar a capacidade de armazenamento. Para declarar a variável como Storage as Integer.
Código:
Digite o nome de MobileBrands como string LaunchDate como data de armazenamento como tipo de fim inteiro
Etapa 5: O próximo passo é verificar a capacidade da RAM.
Código:
Digite MobileBrands Name como String LaunchDate como Data Storage As RAM como Integer End Type
Passo 6: Por fim verificamos o preço.
Código:
Digite MobileBrands Name As String LaunchDate As Date Storage As Integer RAM As Integer Price As Long End Type
Agora, no Sub Procedure, declarando a variável como Type Name, isto é, MobileBrands, podemos acessar todos esses tipos de dados de variáveis.
Etapa 7: crie um subprocedimento.
Código:
Sub Type_Example1 () End Sub
Passo 8: Agora declare a variável “Mobile” como MobileBrnads.
Código:
Sub Type_Example1 () Dim Mobile As Mob End Sub
Passo 9: Agora com o nome da variável “Mobile” podemos acessar todas as variáveis de “MobileBrands”.
Código:
Etapa 10: agora armazene cada valor como o abaixo.
Código:
Digite MobileBrands Name As String LaunchDate As Date Storage As Integer RAM As Integer Price As Long End Type Sub Type_Example1 () Dim Mobile As MobileBrands Mobile.Name = "Redmi" Mobile.LaunchDate = "10-Jan-2019" Mobile.Storage = 62 Mobile.RAM = 6 Mobile.Price = 16500 MsgBox Mobile.Name & vbNewLine & Mobile.LaunchDate & vbNewLine & _ Mobile.Storage & vbNewLine & Mobile.RAM & vbNewLine & Mobile.Price End Sub
Finally, show the result in a VBA message box like the below one.
Code:
Sub Type_Example1() Dim Mobile As MobileBrands Mobile.Name = "Redmi" Mobile.LaunchDate = "10-Jan-2019" Mobile.Storage = 62 Mobile.RAM = 6 Mobile.Price = 16500 MsgBox Mobile.Name & vbNewLine & Mobile.LaunchDate & vbNewLine & _ Mobile.Storage & vbNewLine & Mobile.RAM & vbNewLine & Mobile.Price End Sub
Now run the code using F5 key or manually and see the result in a message box.
Like this, we can use the “VBA Type” statement to define new data type in the subprocedure.
VBA Types vs VBA Class
VBA Type often compared to VBA Class modules. There are certain differences between them. Below are the common differences.
- Difference 1: VBA Type can contain only Public variables. VBA Class can contain both Public as well as Private variables.
- Difference 2: VBA Type cannot contain Procedures and Function. VBA Class contains both of them along with properties.
- Difference 3: VBA Type can be declared in any of the modules and procedures. VBA Class can only be declared in dedicated class modules.