Módulos

Esta página explica os fundamentos dos tipos de módulo presente no VBA.

Introdução

Todo código VBA deve residir dentro de um Módulo. A Janela de Código mostra o código que está dentro de um módulo. Para ver o código de um módulo, basta dar duplo clique sobre ele, que fica listado no Project Explorer ou pressionar Enter se o módulo estiver selecionado e o Project Explorer ativo.

As janelas do VBE citadas acima são mostradas na página Visual Basic Editor (VBE).

No VBA, você pode usar três tipos de módulos: módulos ordinários, formulários e módulos de classe. Normalmente, os módulos ordinários são simplesmente referenciados como módulos e os módulos de classe apenas como classe. As classes podem ser de várias categorias como, por exemplo, planilhas Excel, pastas de trabalho Excel, documentos Word, apresentações PowerPoint, personalizadas e assim por diante.

Criar um Módulo

No VBE, pressione o botão direito em Microsoft Excel Objetos (ou Microsoft Word Objetos se estiver usando o Word, ou VBAProject (Apresentação1) se estiver usando o PowerPoint, e assim por diante), e então selecione o tipo de módulo que deseja criar:

Ganhe tempo usando a sequência Alt, I, M para inserir um módulo regular.

Note que quando um módulo é criado, o VBE automaticamente abre e exibe seu conteúdo na Janela de Código. Além disso, no VBE por padrão cria seus módulos com o nome de Módulo1, Módulo2, Módulo3 e assim por diante.

Renomear um Módulo

Para renomear um módulo, clique sobre ele no Project Explorer e pressione a tecla F4 se a janela de Propriedades não estiver visível. Então, na janela de Propriedades, altere a propriedade (Name) para o novo nome que desejar:

Tente dar a seus módulos nomes que representem bem o grupo de funcionalidades que ele desempenha no seu programa.

Nomes de módulos devem ser únicos entre si e entre todos os outros tipos de módulos. Não podem conter espaços e devem começar, obrigatoriamente, com uma letra.

Prefixo do Nome de um Módulo

Acrescente prefixos ao nome de seus módulos para ficar mais fácil identificar seu tipo. Pessoalmente, utilizo prefixos de três letras para saber qual é o tipo de um módulo.

Exemplos: frmCadastro, mdlComum e clsCaixa representam um módulo de formulário de cadastro, um módulo ordinário com procedimentos de botões e um módulo de classe de objetos do tipo Caixa. Alternativamente, use também fCadastro, mComum e cCaixa. Na verdade, não existe uma regra correta em como dar nomes a módulos, e cada programador tem o seu próprio estilo.

Excluir um Módulo

Para excluir um módulo, vá ao Project Explorer, clique com o botão direito no módulo desejado e clique em Remover. Tome muito cuidado nessa operação, pois não é possível desfazer essa ação:

Copiar um Módulo de um Projeto para Outro

A forma mais fácil de copiar um módulo de projeto de um mesmo aplicativo para outro é utilizar o recurso de clicar e arrastar. No exemplo a seguir, o formulário UserForm1 é copiado do projeto do documento O_visual_basic_editor_(vbe) para o projeto do documento Documento1:

Esse recurso de arrastar e soltar funciona inclusive entre VBEs de aplicativos diferentes. Por exemplo: você pode arrastar um módulo do Word para o Excel para copiá-lo.

Duplicar um Módulo no Mesmo Projeto

Não existe uma forma nativa de duplicar módulos. Se quiser criar uma cópia de um módulo no mesmo projeto, você pode copiar o código de um módulo, criar um novo módulo e depois colar o código. No entanto, se for um formulário, essa técnica não será eficiente porque não leva em conta o desenho do formulário. Então, você deverá:

  • Criar um novo documento em branco;
  • Usar a técnica da seção anterior para copiar o módulo do formulário para o projeto do novo documento criado;
  • Renomear o módulo para o nome desejado (do novo documento);
  • Copiar o módulo de formulário para o documento original;
  • Fechar o documento criado, que já cumpriu seu propósito.

Outra forma de se fazer isso é exportar e reimportar o módulo no mesmo projeto. Isso é explicado na seção a seguir.

Exportar e Importar um Módulo

É possível salvar em um ou mais arquivos os módulos dos seus projetos. Isso é especialmente útil para módulos de formulários, pois possuem algo a mais além do código que é o layout, como o tamanho do formulário e seus controles, propriedades, etc. e essa técnica preserva as características ao exportar ou importar.

Para exportar um módulo, clique com o botão direito no módulo desejado e na janela suspensa que aparecer, clique em Exportar arquivo:

Em seguida, o VBE mostrará uma janela para você determinar onde salvar o módulo:

Após selecionar o caminho desejado, clique em Salvar. Dependendo do tipo de módulo que salvar, você obterá:

  • Módulo Ordinário: um arquivo bas;
  • Formulário: um arquivo frm e outro frx (os dois arquivos são necessários para importar um formulário);
  • Módulo de Classe: um arquivo cls.

Para importar um módulo, basta seguir o mesmo passo, mas clicando em Importar ao invés de Exportar e selecionar o módulo desejado a importar no projeto. Um cópia do projeto será incorporada ao projeto, e o VBE irá automaticamente dar um nome único ao módulo no caso de já existir outro com nome igual.

Utilize Ctrl+E para exportar um módulo e Ctrl+I para importar.
Por |2018-07-14T00:25:14+00:00julho 9th, 2018|VBA|0 Comentários

Sobre o Autor:

Felipe Costa Gualberto é Microsoft Most Valuable Professional (MVP) desde 2013 e é Diretor Técnico da MLF Soluções Tecnológicas e Educação Corporativa. Áreas de interesse: Power BI, Excel, VBA, Office Addins, Sql Server, .NET

Deixe um comentário