O que é uma classe em VBA?
Uma classe é um projeto para um objeto a ser criado. Uma classe em si não faz nada, mas usando classes, você pode criar vários objetos idênticos que podem realizar operações ou podem ser usados como um recurso de dados.
Na vida real, o modelo (design e funcionalidades) de um carro é uma classe e o próprio carro é um objeto dessa classe. Na aula, definimos o que o carro contém e o que ele pode fazer. Por exemplo, um carro tem 4 rodas, 5 marchas, volante, etc. Esses são atributos / propriedades. Também definimos o que um carro pode fazer, como mover-se para frente, para trás, virar, etc. Essas são funções da classe carro. Um objeto carro criado usando a classe carro terá todas essas propriedades. Se você definir um carro com 5 rodas, então um carro criado com esta classe terá 5 rodas. Você entendeu.
Chega de teoria, agora vamos ver como você pode usar um módulo de classe no VBA.
Usando o módulo de classe Excel VBA
Ao trabalhar no VBA, você deve ter usado Range ("A1"). Select. O intervalo é uma classe predefinida em VBA. O select é uma das funções da classe Range que seleciona o intervalo especificado. Da mesma forma, Debug é uma classe em VBA e print e assert são seus métodos. Planilhas, pastas de trabalho, intervalo, etc., todos são classes VBA que usamos em nossos subs.
Crie sua própria aula
Primeiro, precisamos adicionar um módulo de classe em VBA
Pressione a combinação de teclas ALT + F11 para abrir o editor VBA do Excel.
-
- Clique com o botão direito no explorador de projetos. Mova o cursor para Inserir -> Módulo de classe. Clique nisso. A mesma coisa pode ser feita no menu Inserir.
-
- A aula será adicionada à pasta "Módulo de aula". O nome padrão é como class1, class2 e assim por diante. Você pode alterar o nome da classe na janela de propriedades. Vamos chamar nossa classe de "Bem-vindo".
- Agora vamos criar e adicionar alguns atributos à nossa classe. Como desejo que esses atributos estejam disponíveis ao público, tenho de usar operador de acessibilidade público.
Public name As String Public var1 As Integer Public var2 As Integer
- Agora vamos adicionar uma função a esta classe. Quero uma função que diga Oi! para o usuário. Para fazer isso, adicione um sub e nomeie-o como sayHiTo.
Sub sayHiTo (user As String) name = user MsgBox ("Hi!" & Name) End Sub
- Agora vamos usar a classe em um módulo. Insira um novo módulo se você não tiver nenhum. Escreva um sub. Eu chamei meu sub de Teste.
Sub test () Dim wc As New Welcome 'Objeto Welcome declarado e inicializado wc.sayHiTo ("Jack")' usado o método sayHiTo do objeto Welcome. End Sub
- Execute este subteste usando a tecla F5. Ele solicitará "Hi! Jack" na pasta de trabalho do Excel.
Como funciona?
No sub Teste, criamos é um objeto "wc" de Receber classe. Um objeto é criado no VBA em dois métodos. Quando executamos o código, Test sub cria um objeto wc da classe Welcome. Este objeto possui todas as propriedades da classe Welcome. Usamos o método sayHiTo da classe Welcome para dizer olá ao usuário.
Criação de objetos no Excel VBA
-
- Criação instantânea
Na criação instantânea, criamos um objeto enquanto o declaramos com a "nova" chave. Em nosso exemplo acima, usamos a criação instantânea.
Dim wc como novo bem-vindo
2. Criação atrasada
Na criação atrasada, primeiro declaramos apenas o objeto. Não usamos a palavra-chave "novo". Para usar o objeto, precisamos inicializá-lo com a palavra-chave "novo".
Sub test () Dim wc As Welcome 'wc.sayHiTo ("Jack")' gera erro porque wc ainda não foi inicializado 'initialising object Set wc = New Welcome wc.sayHiTo ("Cory")' isso funcionará. End Sub
Acessando variáveis de uma classe
Nos exemplos acima, usamos variáveis públicas para a classe, mas é errado praticar. Devemos evitar o uso de variáveis públicas em uma classe. Agora a questão é como acessaríamos as variáveis da classe. Anteriormente, usamos a sub-rotina para acessar o nome, mas as classes VBA fornecem propriedades que são usadas para atualizar e recuperar sistematicamente os valores das variáveis privadas da classe. As propriedades são mais elegantes do que sub ou função para atualizar e acessar variáveis privadas. Vamos ver como.
Sintaxe da propriedade de classe
Nome privado As String Privado var1 As Integer Privado var2 As Integer Propriedade Let MyName (nm As String) name = nm End Property Obter propriedade MyName () As String MyName = name End Property
Vamos usá-los em um módulo.
Sub test () 'criando objeto de classe Dim wc As New Welcome Dim wc1 As New Welcome' usando as propriedades wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub
Ao executar este sub de teste, você obterá dois nomes impressos para dois objetos da classe "Bem-vindo".
Como as propriedades são diferentes de sub e funções
No exemplo acima, observe que usamos a propriedade MyName como uma variável. Inicializamos o valor da variável "Nome" apenas escrevendo wc.MyName = "assdf". Esta linha de comando é chamada de propriedade chamadaPropriedade Get MyName () As String. Não passamos nenhum valor entre parênteses como fizemos no início.
Da mesma forma, para imprimir os valores da variável "Nome" usamos o comandoDebug.Print wc.MyName. Não é tão simples quanto a inicialização normal de uma variável? A única diferença é que você pode fazer muito nopropriedade segmento. Você coloca validação de dados, cálculo, comunicação, etc. e o usuário só verá o resultado.
Outra diferença é que podemos usar o mesmo nome da propriedade para deixar e peguepapel. Isso torna mais fácil e menos confuso.
Então, sim pessoal, este foi um exemplo simples de um módulo de aula no Excel VBA. Esta é apenas a ponta do iceberg, há muito suco neste tópico que exploraremos em artigos posteriores. Exploraremos cada um deles um por um da maneira mais fácil possível. Espero ter sido explicativo o suficiente para fazer você entender isso. Se você tiver alguma dúvida sobre este tópico ou qualquer outro tópico do Excel VBA, mencione-o na seção de comentários abaixo.
Importar um módulo de um arquivo usando VBA no Microsoft Excel | Aprenda a importar módulo inteiro de outro arquivo usando VBA.
Crie um novo módulo usando VBA no Microsoft Excel | Você pode usar um módulo para criar outro modelo em VBA. Isso pode ajudá-lo a minimizar o trabalho indireto adicional.
Adicionar um procedimento a um módulo usando VBA no Microsoft Excel | Para adicionar procedimentos aos módulos automaticamente, use este código VBA.
Artigos populares:
50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.
A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.
COUNTIF no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.
Como usar a função SUMIF no Excel. Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.