Módulo de classe Excel VBA
A classe VBA nos permite criar nossa própria função Object na qual podemos adicionar qualquer tipo de recurso, detalhes da linha de comando, tipo de função. Quando criamos Class no VBA, eles agem como uma função de objeto totalmente independente, mas estão todos conectados.
Isso nos ajuda a construir aplicativos como os que já existem no VBA e no Excel. Por exemplo, a roda do ciclo de pedalada gira. Pedais e rodas são as partes do ciclo, mas ambos funcionam independentemente para fornecer a saída como um ciclo móvel.

Como criar classes e objetos personalizados no VBA?
Vamos considerar um exemplo de telefones celulares de três empresas diferentes, que são Apple, Samsung e Nokia, considerando os telefones celulares populares e recém-lançados dessas empresas, que são iPhone X, Samsung S8 e Nokia 7+.
Vamos comparar alguns dos recursos importantes para esses telefones celulares, como marca, modelo, tamanho da tela, tipo de câmera e tipo de carregador. Esses são recursos basicamente importantes nessa base. Quase sempre comparamos qualquer telefone celular. Abaixo, mapeamos os parâmetros discutidos acima em um gráfico.

Na janela VBA do menu Inserir , selecione o Módulo de Classe, conforme mostrado abaixo.

Obteremos a janela do módulo Class começando com Option Explicit, conforme mostrado abaixo.

Option Explicit garante que as variáveis devem ser declaradas antes de serem usadas. Se não declararmos nenhuma variável e a usarmos, o sistema gerará um erro. Agora em aula, defina todos os parâmetros discutidos de medição de telefones celulares com o público . Isso fará com que esses parâmetros definidos possam ser usados a qualquer hora, em qualquer lugar, sem quaisquer limitações.
Código:
Option Explicit 'Lista de propriedades Public Brand As String Modelo público As String Public ScreenSize As String Público CameraType As String Public ChargerType As String

Agora vamos adicionar um processo diferente de operação, recursos e funções de um telefone móvel, como ligar um telefone, desligar o telefone, tocar música, carregar a bateria, etc. com subcategoria para cada função conforme mostrado abaixo. E adicione uma caixa de mensagem em cada loop de subcategoria para que possamos ver quais métodos estão em execução.
Código:
'Possíveis técnicas Sub MobileStarts () MsgBox "Mobile is Turning On" End Sub
Sub MobileOff () MsgBox "Mobile is Turning Off" End Sub
Sub PlayMusic () MsgBox "O sistema de áudio está funcionando no momento" End Sub
Sub BatteryCharge () MsgBox "Carregador atualmente conectado" End Sub

Isso conclui a criação da classe. Antes de prosseguirmos, é aconselhável alterar o nome do Módulo de classe. Escolha qualquer nome de acordo com sua necessidade, conforme mudamos para Celular .

Agora vamos escrever um código em um módulo onde veremos e compararemos as características e funções de cada marca de celular. Para isso, precisamos adicionar um Módulo indo lá no menu Inserir, como mostrado no menu.

Teremos um novo módulo aberto com Option Explicit habilitado enquanto estamos trabalhando e criando uma classe. Agora comece a escrever Subcategoria no nome das funções executadas conforme mostrado abaixo.

Podemos mudar o nome do Módulo, assim como fizemos para a Classe. Isso nos ajuda a manter a identidade co-relacionada do código VBA criado. Isso pode ser feito nas janelas de propriedades, conforme mostrado a seguir.

Já definimos vários recursos, funções e métodos de todos os telefones celulares da marca. Agora vamos definir 3 variáveis em qualquer nome (de preferência no nome da marca do celular) e atribuí-lo a Mobile. Vamos começar com o iPhone primeiro, como mostrado abaixo.

Da mesma forma, faça o mesmo para o resto da marca de celular, conforme mostrado abaixo.

Com isso, atribuímos a Classe criada a cada variável dimensional da marca Mobile. Agora, para cada marca, faça o mesmo processo de atribuição da Classe .
Agora precisamos atribuir todos os recursos do telefone celular e seu valor. Para isso, utilize a função Set e atribua a um Novo Celular, conforme mostrado abaixo.

Agora abra o loop With-End para iPhone. É aqui que definiremos cada atributo do celular.

Como podemos ver, atribuímos todos os recursos definidos da marca iPhone de Class com valores específicos como String.
Faça o mesmo com a Samsung e a marca Nokia.

Agora usaremos DebugPrint para imprimir as informações na janela imediata. É útil quando queremos ver uma determinada variável em uma linha de código. Selecionaremos recursos diferentes para cada marca de celular, conforme mostrado abaixo.

Agora atribuir os MobileStarts e MobileOff operações funcionais, que nós definidos na classe para cada uma das marcas de telemóveis no mesmo módulo, juntamente com a caixa de mensagem. Você pode pular a caixa de mensagem aqui.

Isso conclui a atribuição de classe ao módulo. Agora compile o código e execute-o usando a tecla F5. Veremos a mensagem de cada marca de celular, conforme mostrado a seguir.

Agora, se você deseja saber quais variáveis e funções possuem quais tipos de valores, para isso abra a janela Local na guia view, que nos ajudará a obter os detalhes quando compilarmos o código conforme mostrado abaixo.

O código abaixo é para sua referência.
Código:
Sub VBA_Class() Dim iPhone As Mobile Dim Samsung As Mobile Dim Nokia As Mobile Set iPhone = New Mobile With iPhone .Brand = "iPhone" .Model = "iPhone X" .ScreenSize = "6.5 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Regular" End With Set Samsung = New Mobile With Samsung .Brand = "Samsung" .Model = "Samsung S8" .ScreenSize = "5.8 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Set Nokia = New Mobile With Nokia .Brand = "Nokia" .Model = "Nokia 7+" .ScreenSize = "6 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Debug.Print "Phone Screen Size is: " & iPhone.ScreenSize Debug.Print "Camera of Samsung is: " & Samsung.CameraType Debug.Print "Charger Type is: " & Nokia.ChargerType iPhone.MobileStarts iPhone.MobileOff MsgBox iPhone.Model Samsung.MobileStarts Samsung.MobileOff MsgBox Samsung.Model Nokia.MobileStarts Nokia.MobileOff MsgBox Nokia.Model End Sub
Pros
- We can build our own application with a lot of features.
- Once Class is created, we can update any feature, anytime whenever we require.
- If we update the code, then also it won’t cause any problem in other parts of the Class.
- We can test the individual part of the application as per our needs.
Cons
- Initially, it takes a lot of time to create a class in VBA.
- People who are new to VBA will find the class very difficult to apply.
Things to Remember
- As the code can be huge and big, so it’s better to compile the code step-by-step. By doing this, we would avoid the N number of errors, which will be difficult for us to debug and resolve.
- We can ignore the use of Message Box if you are taking and testing the above-written code.
- Para teste, você pode usar técnicas ou funções menores na criação de classes. Isso pode ser modificado posteriormente, quando quisermos adicionar mais funções e técnicas do produto.
- Sempre considere recursos semelhantes ou iguais quando terminarmos a aula e atribuí-la a um módulo. Isso nos ajudará a comparar as características de diferentes produtos.