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) blog/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, a janela de código automaticamente mostra seu 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.

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, mdlBotões 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. Ultimamente, tenho variado bastante minha nomenclatura, utilizando nomes como CadastroClass, BotõesModule e CaixaClass.

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 copia-lo.

Exportar e Importar um Módulo

Normalmente, quando um terceiro precisa do código de um módulo, eu simplesmente copio todo seu conteúdo envio por e-mail. No entanto, isso só é possível com módulos regulares ou módulos de classe. Os módulos de formulários possuem algo a mais além do código que é seu layout, isto é: o tamanho do formulário e seus controles, suas propriedades, etc. Nesse caso, o método que sugiro é utilizar as ferramentas de exportação e importação de módulos do VBE.

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.

Utilize Ctrl+E para exportar um módulo e Ctrl+I para importar.

Sobre Felipe Gualberto

Microsoft Most Valuable Professional (MVP) de Excel.
Esta entrada foi publicada em Tutoriais e marcada com a tag , , , , , , . Adicione o link permanente aos seus favoritos.
  • Claudio Lima

    Exportação e Importação de módulos entre aplicativos diferentes.
    É possível inserir um modulo em um arquivo access a partir do excel (usando vba), sem ter o access instalado?

    • Cláudio, creio não ser possível de forma fácil.
      A única maneira que enxergo para fazer isso é, de alguma forma, extrair o arquivo VBProject.bin de dentro do arquivo do Access, editá-lo e então devolvê-lo, que é uma tarefa custosa.

      • Claudio Lima

        Imaginei que seria possível via ADOX. Obrigado!