VBA - Abrindo e usando o Editor Visual Basic (VBE) no Excel

Este tutorial mostrará como abrir e programar no Editor do Visual Basic em VBA.

Abrindo o Editor do Visual Basic

Existem algumas maneiras de acessar o Editor do Visual Basic (VBE) no Excel.

pressione Alt + F11 no seu teclado.

OU

Clique Exibir> Macros> Exibir macros. Daqui você pode Editar uma macro existente ou Crio um novo. Qualquer uma das opções abre o Editor VB.

OU

Desenvolvedor> Visual Basic

Observação: se você não vir a faixa de opções do desenvolvedor, precisará habilitá-la.

Para habilitar o Developer Ribbon

Clique no Arquivo guia na faixa de opções e vá para Opções. No Personalizar fita opções, marque o Desenvolvedor caixa de seleção. Isso está desativado por padrão, portanto, você precisará ativá-lo para ver a guia na faixa de opções.

Clique OK.

A guia Desenvolvedor aparecerá na faixa principal. Clique em Visual Basic no início da faixa de opções para acessar o Editor do Visual Basic.

Compreendendo a tela VBE

A tela VBE é mostrada no gráfico abaixo.

O Explorador de Projetos

O Project Explorer permite que você veja como o projeto no qual você está trabalhando está organizado. Você pode ver quantos módulos e formulários estão armazenados no projeto e pode navegar entre esses módulos e formulários. Um módulo é onde o código em sua pasta de trabalho é armazenado, quando você grava uma macro, ela é armazenada em um módulo padrão - que será, por padrão, denominado ‘Módulo 1'.

Cada uma das planilhas em seu arquivo Excel também possui um módulo por trás, assim como a própria pasta de trabalho. Ao inserir uma nova planilha na pasta de trabalho por meio da tela principal do Excel, você verá um módulo de planilha adicional aparecer no Project Explorer.

Clique duas vezes em um módulo para mover para o código desse módulo.

Você também pode clicar no menu Janela na barra de ferramentas e selecionar o módulo para mover para o código desse módulo.

Tipo de Módulos

Os módulos são organizados em 5 tipos diferentes.

  1. Módulos padrão - a maior parte do seu código irá para este tipo de módulo. Quando você grava uma macro, ela é colocada em um módulo padrão. Quando você escreve um procedimento geral para ser usado em toda a sua pasta de trabalho, ele normalmente também entra em um módulo padrão.
  2. Módulos de pasta de trabalho - este módulo contém o código que é exclusivo para aquela pasta de trabalho individual. A maior parte do código neste tipo de módulos é conhecido como EVENTOS. Um evento pode ocorrer quando uma pasta de trabalho é aberta ou fechada, por exemplo. O módulo também pode conter código que é escrito por você e usado pelos eventos.
  3. Módulos de folha - este módulo contém o código que é exclusivo para aquela folha individual. Eles podem ocorrer quando uma folha é clicada, por exemplo (o Clique em Evento) ou quando você altera os dados em uma célula. Este módulo também pode conter código que é escrito por você e chamado pelos Eventos.
  4. Módulos de formulário - este é o módulo por trás de um formulário personalizado que você pode criar. Por exemplo, você pode criar um formulário para conter os detalhes de uma fatura, com um botão OK, o código por trás do botão (o evento de clique) contém o código que será executado quando o botão for clicado.
  5. Módulos de aula - este módulo é usado para criar objetos em tempo de execução. O módulo de aula é usado por programadores VBA avançados e será abordado em um estágio posterior.

Inserindo um módulo ou formulário em seu código

Para inserir um novo módulo em seu código, clique no Inserir opção na barra de menu e clique em Módulo.

Ou clique no Módulo de inserção botão que você encontrará na faixa de opções padrão.

Para inserir um novo formulário de usuário em seu código, selecione o UserForm opção.

Um novo formulário de usuário aparecerá no Explorador de Projetos e será mostrado na janela de código à direita.

Você também pode inserir um Módulo de aula

Um módulo de classe é usado para inserir objetos em seu projeto VBA.

Removendo um Módulo ou Formulário do Explorador de Projetos

Clique com o botão direito do mouse no módulo ou formulário que deseja remover para exibir o menu de atalho do botão direito.

Clique Retirar (nesse caso UserForm1… )

OU

Clique no Arquivo menu e, em seguida, clique em Remova (UserForm1).

Uma caixa de aviso aparecerá perguntando se você deseja Exportar o formulário ou módulo antes de removê-lo. Exportar o formulário ou módulo permite salvá-lo como um arquivo individual para uso em um projeto Excel diferente em outro momento.

Na maioria das vezes, quando você remove um módulo ou formulário, é porque você não precisa dele, então clique em Não.

A janela de propriedades

Você verá a janela de propriedades abaixo do Explorador de Projetos. Você pode precisar ligar isso.

pressione F4 ou clique Visualizar, Janela de Propriedades.

A janela de propriedades permite que você veja as propriedades de um módulo ou formulário específico que está selecionado no Explorador de Projetos. Quando estiver trabalhando em módulos, você pode usar a janela de propriedades para alterar o nome do módulo. Esta é a única propriedade disponível para um módulo. No entanto, quando você estiver trabalhando com formulários, haverá muito mais propriedades disponíveis e a janela Propriedades será amplamente usada para controlar o comportamento dos formulários e dos controles contidos nos formulários.

Quando você grava uma macro, ela é automaticamente colocada em um módulo padrão. O módulo será denominado ‘Módulo 1' e qualquer código contido nesse módulo está disponível para ser usado em todo o projeto. Você deve renomear seu módulo para algo que seja significativo, que tornaria seu código fácil de encontrar se você adicionasse vários módulos ao projeto.

Você também pode renomear seus formulários.

Se você renomeou sua planilha no Excel, o nome da planilha aparecerá como o nome da planilha entre colchetes após Plan1.

Se quiser alterar o nome do módulo por trás da planilha, você pode alterá-lo da mesma forma que altera o módulo e o nome do formulário do usuário - alterando a propriedade Nome na janela Propriedades.

Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!

A janela de código

A janela de código mostra os subprocedimentos e funções contidos em seus módulos - mostra o código real. Quando você grava uma macro, um subprocedimento é criado para você. Se você adicionar uma tecla de atalho à macro, ela aparecerá como um comentário na macro para que você saiba qual é a tecla de atalho atribuída à macro.

Na parte superior da janela de código, há duas caixas de combinação. Isso permite que você veja em qual objeto (se houver) dentro do Módulo você pode estar trabalhando e em qual Procedimento você pode estar trabalhando.

No exemplo acima, não estamos trabalhando em nenhum objeto - portanto, está definido como geral, mas estamos trabalhando dentro do procedimento Gridlines.

Se tivéssemos mais de um procedimento neste módulo, poderíamos usar a caixa de combinação acima para navegar até os outros procedimentos.

Entendendo o Código

Existem 2 tipos de procedimentos - Subprocedimentos e Procedimentos de função.

Subprocedimentos

O gravador de macro pode gravar apenas procedimentos Sub. Um procedimento Sub faz coisas. Eles executam ações como formatar uma tabela ou criar uma tabela dinâmica ou, no exemplo da linha de grade, alterar as configurações de visualização da janela ativa. A maioria dos procedimentos escritos são procedimentos Sub. Todas as macros são procedimentos Sub.

Um subprocedimento começa com um Sub declaração e termina com um End Sub demonstração. O nome do procedimento é sempre seguido por parênteses.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalseEnd Sub

Procedimentos de Função

Um procedimento Function retorna um valor. Esse valor pode ser um único valor, uma matriz, um intervalo de células ou um objeto. As funções geralmente executam algum tipo de cálculo. As funções no Excel podem ser usadas com o Assistente de Função ou podem ser chamadas a partir de Sub Procedimentos.

123 Função quilos (libras como o dobro)Quilos = (libras / 2,2)Função Final

Esta função pode ser usada na caixa de diálogo Inserir Função no Excel para converter Libras em Quilogramas.

Criando um novo procedimento

Antes de criar seu novo procedimento, certifique-se de estar no módulo no qual deseja armazenar o procedimento. Você pode criar um novo procedimento clicando no menu Inserir, Procedimento;

ou você pode clicar no ícone na barra de ferramentas

A seguinte caixa de diálogo aparecerá

  1. Digite o nome do seu novo procedimento na caixa de nome - deve começar com uma letra do alfabeto e pode conter letras e números e ter no máximo 64 caracteres.
  2. Você pode ter um Subprocedimento, uma Procedimento de função ou um Propriedade procedimento. (Propriedades são usadas em módulos de classe e propriedades definidas para controles ActiveX que você pode ter criado).
  3. Você pode definir o escopo do procedimento Público ou Privado. Se o procedimento for público (padrão), ele poderá ser usado por todos os módulos do projeto, enquanto se o procedimento for privado, ele só poderá ser usado por este módulo.
  4. Você pode declarar variáveis ​​locais neste procedimento como Estáticas (isso tem a ver com o Escopo da variável e torna uma variável de nível de procedimento local pública para todo o módulo). Não usaremos esta opção.

Depois de preencher todos os detalhes relevantes, clique em OK.

Em seguida, digite seu código entre as instruções Sub e End Sub.

ALTERNATIVAMENTE - você pode digitar as instruções Sub e End Sub em seu módulo exatamente como aparece acima. Você não precisa colocar a palavra Público antes da palavra sub - se essa palavra for omitida, todos os procedimentos no módulo serão automaticamente considerados Públicos.

Então você digita Sub e o nome do seu procedimento seguido por parênteses.

ie:

1 Subteste ()

o End Sub declaração aparecerá automaticamente.

Programação VBA | O Code Generator funciona para você!

Escrever código que seja fácil de entender e navegar

Adicionando comentários

Adquira o hábito de colocar comentários em seu código para se lembrar em um estágio posterior da funcionalidade do código.

Você pode inserir um comentário em seu código, mas digitando um apóstrofo no teclado ou pode ativar a barra de ferramentas Editar e usar o botão de comentário que aparece nessa barra de ferramentas.

Clique com o botão direito nas barras de ferramentas.

Selecione Editar.

Clique no botão de comentário para inserir um comentário em seu código.

NOTA: Normalmente, você só usa o botão de bloqueio de comentários quando tem algumas linhas de código que deseja comentar (e não excluir). É mais fácil para um único comentário usar um apóstrofo.

Recuo

Um bom hábito a adquirir é recuar seu código, tornando mais fácil ler o código e ver as diferentes partes do código.

Pode haver vários níveis de recuo, dependendo da lógica do seu código.

UpperCase vs LowerCase

O VBA ajusta todo o código para a caixa apropriada, portanto, se você digitar TUDO EM MAIÚSCULAS ou todas em minúsculas, ele reajustará seu código para a caixa adequada!

Programação VBA | O Code Generator funciona para você!

Autocompletar

Ao ajustar seu código, você notará que o VBA tenta ajudá-lo, sugerindo o código que você pode digitar. Isso é conhecido como AutoCompletar.

Interceptação de erros e depuração

Existem 4 tipos de erros que podem ocorrer quando você escreve o código VBA - erros de sintaxe, erros de compilação, erros de tempo de execução e erros lógicos.

Erros de sintaxe

Eles ocorrem quando você escreve o código incorretamente. Isso é amplamente evitado pelo VBA com a opção de verificação de sintaxe ativada. Normalmente, está ativado por padrão, mas se você estiver desativado, ative-o acessando Ferramentas, Opções e clique Verificação automática de sintaxe.

Se você digitar o código incorretamente (por exemplo, excluindo algo que deveria estar no código), uma caixa de mensagem aparecerá enquanto você está escrevendo o código, dando-lhe a oportunidade de alterá-lo.

Erros de compilação

Eles ocorrem quando algo está faltando no código que impede a execução do código. O erro não aparece quando você escreve o código, mas ocorre quando você tenta e executa o código.

Programação VBA | O Code Generator funciona para você!

Erros de tempo de execução

Eles ocorrem quando você executa o código e a sintaxe e a compilação estão corretas, mas algo mais ocorre para impedir que o código seja executado corretamente.

Nesse caso, a Planilha4 não existe. Essa mensagem de erro é mais útil do que as mensagens de erro de compilação, pois oferece a oportunidade de depurar o código e ver por que ele não está funcionando.

Clique Depurar. O código irá parar no erro e destacar o erro em amarelo, permitindo que você corrija o erro.

Corrija a Folha4 para a Folha2 (uma vez que a Folha 2 existe e a Folha 4 não existe).

pressione F5 ou clique no Prosseguir botão na barra de ferramentas.

Erros Lógicos

Estes são os mais difíceis de encontrar. No caso deles, o código é escrito corretamente, mas a lógica real do código é falha, portanto, você pode não obter o resultado que deseja do código. Para erros lógicos, a interceptação de erros é essencial.

Existem 2 tipos de armadilhas de erro

Em caso de erro, vá para

O código a seguir é para abrir a caixa de diálogo Abrir arquivo - ele nos dará um erro se o usuário clicar Cancelar.

Quando você executa o código, a caixa de diálogo Abrir arquivo é exibida.

Quando você clicar em cancelar, o erro ocorrerá.

A seguinte interceptação de erro continuará o código para a função de saída do código e retornará a mensagem.

Isso faz uso de On Error GoTo para sair da função.

Quando você executa o código e clica em cancelar, a caixa de mensagem aparecerá.

On Error Resume Next

Se você colocar o On Error Resume Next Instrução em seu código, a linha que contém o erro será ignorada e o código continuará.

Por exemplo, se o usuário clicar em Cancelar no código abaixo, o código não apresentará um erro de tempo de execução, apenas terminará sem que o código faça mais nada.

Há momentos em que isso é muito útil, mas também pode ser muito perigoso em algumas circunstâncias, pois não retorna uma mensagem explicando por que você obteve um erro.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave