Editor Visual Basic - Como abrir e usar no Excel

A primeira etapa para trabalhar com o VBA no Excel é familiarizar-se com o Editor do Visual Basic (também chamado de Editor do VBA ou Editor do VB).

Neste tutorial, cobrirei tudo o que há para saber sobre o Editor VBA e algumas opções úteis que você deve saber ao codificar no Excel VBA.

O que é o Editor do Visual Basic no Excel?

O Editor do Visual Basic é um aplicativo separado que faz parte do Excel e abre sempre que você abre uma pasta de trabalho do Excel. Por padrão, ele está oculto e para acessá-lo, você precisa ativá-lo.

O Editor VB é o local onde você guarda o código VB.

Existem várias maneiras de obter o código no Editor VB:

  1. Quando você grava uma macro, ela cria automaticamente um novo módulo no Editor VB e insere o código nesse módulo.
  2. Você pode digitar manualmente o código VB no editor VB.
  3. Você pode copiar um código de alguma outra pasta de trabalho ou da Internet e colá-lo no Editor VB.

Abrindo o Editor VB

Existem várias maneiras de abrir o Editor do Visual Basic no Excel:

  1. Usando um atalho de teclado (mais fácil e rápido)
  2. Usando a guia Desenvolvedor.
  3. Usando as guias da planilha.

Vamos examinar cada um deles rapidamente.

Atalho de teclado para abrir o Editor do Visual Basic

A maneira mais fácil de abrir o editor do Visual Basic é usar o atalho do teclado - ALT + F11 (segure a tecla ALT e pressione a tecla F11).

Assim que você fizer isso, uma janela separada será aberta para o editor do Visual Basic.

Este atalho funciona como uma alternância, portanto, ao usá-lo novamente, ele o levará de volta ao aplicativo Excel (sem fechar o Editor VB).

O atalho para a versão Mac é Opt + F11 ou Fn + Opt + F11

Usando a guia Desenvolvedor

Para abrir o Editor do Visual Basic na faixa de opções:

  1. Clique na guia Desenvolvedor (se você não vir uma guia de desenvolvedor, leia sobre como obtê-la).
  2. No grupo Código, clique em Visual Basic.

Usando a guia da planilha

Este é um método menos usado para abrir o Editor Vb.

Vá para qualquer uma das guias da planilha, clique com o botão direito e selecione ‘Exibir código’.

Este método não apenas abriria o Editor VB, mas também o levará para a janela de código desse objeto de planilha.

Isso é útil quando você deseja escrever um código que funcione apenas para uma planilha específica. Esse geralmente é o caso com eventos de planilha.

Anatomia do Editor Visual Basic no Excel

Quando você abre o Editor VB pela primeira vez, pode parecer um pouco opressor.

Existem diferentes opções e seções que podem parecer completamente novas à primeira vista.

Além disso, ele ainda tem uma aparência antiga do Excel 97 dias. Embora o Excel tenha melhorado tremendamente em design e usabilidade ao longo dos anos, o Editor VB não viu nenhuma mudança em sua aparência.

Nesta seção, eu o conduzirei pelas diferentes partes do aplicativo Editor do Visual Basic.

Nota: Quando comecei a usar o VBA anos atrás, fiquei bastante impressionado com todas essas novas opções e janelas. Mas à medida que você se acostuma a trabalhar com o VBA, você se sentirá confortável com a maioria deles. E na maioria das vezes, você não precisará usar todas as opções, apenas uma mão cheia.

Abaixo está uma imagem dos diferentes componentes do Editor VB. Em seguida, eles são descritos em detalhes nas seções abaixo deste tutorial.

Agora, vamos examinar rapidamente cada um desses componentes e entender o que ele faz:

Barra de menu

É aqui que você tem todas as opções que pode usar no Editor VB. É semelhante à faixa de opções do Excel, onde você tem guias e opções em cada guia.

Você pode explorar as opções disponíveis clicando em cada um dos elementos do menu.

Você notará que a maioria das opções do Editor VB possui atalhos de teclado mencionados ao lado. Depois de se acostumar com alguns atalhos de teclado, trabalhar com o Editor VB se torna realmente fácil.

Barra de Ferramentas

Por padrão, há uma barra de ferramentas no Editor VB que tem algumas opções úteis que você provavelmente precisará com mais frequência. É como a Barra de Ferramentas de Acesso Rápido do Excel. Dá-lhe acesso rápido a algumas das opções úteis.

Você pode personalizá-lo um pouco removendo ou adicionando opções a ele (clicando na pequena seta apontando para baixo no final da barra de ferramentas).

Na maioria dos casos, a barra de ferramentas padrão é tudo o que você precisa ao trabalhar com o Editor VB.

Você pode mover a barra de ferramentas acima da barra de menu clicando nos três pontos cinza (no início da barra de ferramentas) e arrastando-a acima da barra de menu.

Nota: Existem quatro barras de ferramentas no Editor VB - formulário Padrão, Depurar, Editar e Usuário. O que você vê na imagem acima (que também é o padrão) é a barra de ferramentas padrão. Você pode acessar outras barras de ferramentas indo para a opção Exibir e passando o cursor sobre a opção Barras de ferramentas. Você pode adicionar uma ou mais barras de ferramentas ao Editor VB, se desejar.

Explorador de Projetos

Project Explorer é uma janela à esquerda que mostra todos os objetos atualmente abertos no Excel.

Quando você está trabalhando com o Excel, cada pasta de trabalho ou suplemento que está aberto é um projeto. E cada um desses projetos pode ter uma coleção de objetos.

Por exemplo, na imagem abaixo, o Project Explorer mostra as duas pastas de trabalho que estão abertas (Book1 e Book2) e os objetos em cada pasta (planilhas, ThisWorkbook e Módulo em Book1).

Há um ícone de adição à esquerda dos objetos que você pode usar para recolher a lista de objetos ou expandir e ver a lista completa de objetos.

Os seguintes objetos podem fazer parte do Project Explorer:

  1. Todas as pastas de trabalho abertas - dentro de cada pasta de trabalho (que também é chamada de projeto), você pode ter os seguintes objetos:
    • Objeto de planilha para cada planilha na pasta de trabalho
    • Objeto ThisWorkbook que representa a própria pasta de trabalho
    • Chartsheet objeto para cada folha de gráfico (não são tão comuns quanto as planilhas)
    • Módulos - É para onde vai o código gerado com um gravador de macro. Você também pode escrever ou copiar e colar o código VBA aqui.
  2. Todos os suplementos abertos

Considere o Project Explorer como um lugar que descreve todos os objetos abertos no Excel em um determinado momento.

O atalho de teclado para abrir o Project Explorer é Control + R (segure a tecla de controle e pressione R). Para fechá-lo, basta clicar no ícone de fechamento no canto superior direito da janela Project Explorer.

Observação: para cada objeto no Project Explorer, há uma janela de código na qual você pode escrever o código (ou copiá-lo e colá-lo de algum lugar). A janela de código aparece quando você clica duas vezes no objeto.

Janela de Propriedades

A janela Propriedades é onde você pode ver as propriedades do objeto selecionado. Se você ainda não tiver a janela Propriedades, poderá obtê-la usando o atalho de teclado F4 (ou vá para a guia Exibir e clique na janela Propriedades).

A janela Propriedades é uma janela flutuante que você pode encaixar no Editor VB. No exemplo abaixo, eu o encaixei logo abaixo do Project Explorer.

A janela de propriedades nos permite alterar as propriedades de um objeto selecionado. Por exemplo, se eu quiser deixar uma planilha oculta (ou muito oculta), posso fazer isso alterando a propriedade Visível do objeto de planilha selecionado.

Relacionado: Ocultar uma planilha no Excel (que não pode ser desocultada facilmente)

Janela de Código

Há uma janela de código para cada objeto listado no Project Explorer. Você pode abrir a janela de código de um objeto clicando duas vezes nele na área Project Explorer.

A janela de código é onde você escreverá seu código ou copiará e colará um código de outro lugar.

Quando você grava uma macro, o código dela vai para a janela de código de um módulo. O Excel insere automaticamente um módulo para colocar o código nele ao gravar uma macro.

Relacionado: Como executar uma macro (código VBA) no Excel.

Janela Imediata

A janela Imediata é usada principalmente ao depurar código. Uma maneira de usar a janela Immediate é usar uma instrução Print.Debug dentro do código e, em seguida, executar o código.

Isso me ajuda a depurar o código e determinar onde meu código fica preso. Se obtiver o resultado de Print.Debug na janela imediata, sei que o código funcionou pelo menos até essa linha.

Se você é novo na codificação VBA, pode levar algum tempo para conseguir usar a janela imediata para depuração.

Por padrão, a janela imediata não é visível no Editor VB. Você pode obtê-lo usando o atalho de teclado Control + G (ou pode ir para a guia Exibir e clicar em ‘Janela imediata’).

Onde adicionar código no editor VB

Espero que agora você tenha uma compreensão básica do que é o Editor VB e de todas as partes que ele contém.

Nesta seção deste tutorial, mostrarei onde adicionar um código VBA no Editor do Visual Basic.

Existem dois lugares onde você pode adicionar o código VBA no Excel:

  1. A janela de código de um objeto. Esses objetos podem ser uma pasta de trabalho, planilha, formulário do usuário, etc.
  2. A janela de código de um módulo.

Janela de código de módulo vs. janela de código de objeto

Deixe-me primeiro esclarecer rapidamente a diferença entre adicionar um código em um módulo e adicionar um código em uma janela de código de objeto.

Quando você adiciona um código a qualquer um dos objetos, é dependente de alguma ação desse objeto que irá acionar esse código. Por exemplo, se você deseja reexibir todas as planilhas em uma pasta de trabalho assim que abrir essa pasta de trabalho, o código irá para o objeto ThisWorkbook (que representa a pasta de trabalho).

O gatilho, neste caso, é abrir a pasta de trabalho.

Da mesma forma, se você quiser proteger uma planilha assim que alguma outra planilha for ativada, o código para isso irá para a janela de código da planilha.

Esses gatilhos são chamados de eventos e você pode associar um código a ser executado quando um evento ocorrer.

Relacionado: Saiba mais sobre Eventos no VBA.

Ao contrário, o código no módulo precisa ser executado manualmente (ou pode ser chamado de outras sub-rotinas também).

Quando você grava uma macro, o Excel cria automaticamente um módulo e insere o código de macro gravado nele. Agora, se você tiver que executar esse código, precisará executar a macro manualmente.

Adicionando Código VBA no Módulo

Embora a gravação de uma macro crie automaticamente um módulo e insira o código nele, existem algumas limitações ao usar um gravador de macro. Por exemplo, ele não pode usar loops ou condições If Then Else.

Nesses casos, é melhor copiar e colar o código manualmente ou escrever o código você mesmo.

Um módulo pode ser usado para conter os seguintes tipos de códigos VBA:

  1. Declarações: Você pode declarar variáveis ​​em um módulo. A declaração de variáveis ​​permite que você especifique que tipo de dados uma variável pode conter. Você pode declarar uma variável para uma sub-rotina apenas ou para todas as sub-rotinas no módulo (ou todos os módulos)
  2. Sub-rotinas (procedimentos): Este é o código que contém as etapas que você deseja que o VBA execute.
  3. Procedimentos de Função: Este é um código que retorna um único valor e você pode usá-lo para criar funções personalizadas (também chamadas de Funções Definidas pelo Usuário ou UDFs em VBA)

Por padrão, um módulo não faz parte da pasta de trabalho. Você precisa inseri-lo antes de usá-lo.

Adicionando um Módulo no Editor VB

Abaixo estão as etapas para adicionar um módulo:

  1. Clique com o botão direito em qualquer objeto da pasta de trabalho (na qual deseja o módulo).
  2. Passe o cursor sobre a opção Inserir.
  3. Clique em Módulo.

Isso criaria instantaneamente uma pasta chamada Módulo e inseriria um objeto chamado Módulo 1. Se você já tiver um módulo inserido, as etapas acima inseririam outro módulo.

Uma vez que o módulo é inserido, você pode clicar duas vezes no objeto do módulo no Project Explorer e ele abrirá a janela de código para ele.

Agora você pode copiar e colar o código ou escrevê-lo você mesmo.

Removendo o Módulo

Abaixo estão as etapas para remover um módulo no Excel VBA:

  1. Clique com o botão direito no módulo que deseja remover.
  2. Clique na opção Remover Módulo.
  3. Na caixa de diálogo que se abre, clique em Não.

Nota: Você pode exportar um módulo antes de removê-lo. Ele é salvo como um arquivo .bas e você pode importá-lo em algum outro projeto. Para exportar um módulo, clique com o botão direito no módulo e clique em ‘Exportar arquivo’.

Adicionando código à janela de código do objeto

Para abrir a janela de código de um objeto, basta clicar duas vezes nele.

Ao abrir, você pode inserir o código manualmente ou copiar e colar o código de outros módulos ou da internet.

Observe que alguns dos objetos permitem que você escolha o evento para o qual deseja escrever o código.

Por exemplo, se você deseja escrever um código para que algo aconteça quando a seleção é alterada na planilha, você precisa primeiro selecionar planilhas no menu suspenso no canto superior esquerdo da janela de código e, em seguida, selecionar o evento de alteração no menu -para baixo à direita.

Observação: esses eventos são específicos do objeto. Ao abrir a janela de código de uma pasta de trabalho, você verá os eventos relacionados ao objeto da pasta de trabalho. Ao abrir a janela de código de uma planilha, você verá os eventos relacionados ao objeto da planilha.

Personalizando o Editor VB

Embora as configurações padrão do Editor do Visual Basic sejam boas o suficiente para a maioria dos usuários, ele permite que você personalize ainda mais a interface e algumas funcionalidades.

Nesta seção do tutorial, mostrarei todas as opções que você tem ao personalizar o Editor VB.

Para personalizar o ambiente do Editor VB, clique em Ferramentas na barra de menus e clique em Opções.

Isso abriria a caixa de diálogo Opções, que fornecerá todas as opções de personalização no Editor VB. A caixa de diálogo ‘Opções’ possui quatro guias (conforme mostrado abaixo) que possuem várias opções de personalização para o Editor do Visual Basic.

Vamos examinar rapidamente cada uma dessas guias e as opções importantes em cada uma.

Guia do Editor

Embora as configurações embutidas funcionem bem na maioria dos casos, deixe-me passar pelas opções desta guia.

À medida que você se torna mais proficiente em trabalhar com VBA no Excel, pode querer personalizar o Editor VB usando algumas dessas opções.

Verificação automática de sintaxe

Ao trabalhar com VBA no Excel, assim que cometer um erro de sintaxe, você será saudado por uma caixa de diálogo pop-up (com algumas descrições sobre o erro). Algo conforme mostrado abaixo:

Se você desabilitar esta opção, esta caixa pop-up não aparecerá mesmo quando você cometer um erro de sintaxe. No entanto, haveria uma mudança na cor do texto do código para indicar que há um erro.

Se você é um iniciante, recomendo que mantenha esta opção ativada. À medida que você ganha mais experiência com a codificação, pode começar a achar essas caixas pop-up irritantes e, então, desabilitar essa opção.

Requer declaração de variável

Esta é uma opção que recomendo ativar.

Ao trabalhar com o VBA, você usaria variáveis ​​para conter diferentes tipos de dados e objetos.

Quando você ativa esta opção, ela insere automaticamente a instrução ‘Option Explicit’ na parte superior da janela de código. Isso força você a declarar todas as variáveis ​​que você está usando em seu código. Se você não declarar uma variável e tentar executar o código, ele mostrará um erro (conforme mostrado abaixo).

No caso acima, usei a variável Var, mas não a declarei. Então, quando tento executar o código, ele mostra um erro.

Esta opção é bastante útil quando você tem muitas variáveis. Muitas vezes me ajuda a encontrar nomes de variáveis ​​com erros ortográficos, pois são consideradas não declaradas e um erro é mostrado.

Nota: Quando você ativa esta opção, ela não afeta os módulos existentes.

Membro da lista automática

Esta opção é bastante útil, pois ajuda a obter uma lista de propriedades de métodos para um objeto.

Por exemplo, se eu quiser deletar uma planilha (Plan1), preciso usar a linha Plan1.Delete.

Enquanto digito o código, assim que digito o ponto, ele me mostra todos os métodos e propriedades associados ao objeto Worksheet (conforme mostrado abaixo).

O recurso de lista automática é ótimo, pois permite que você:

  • Selecione rapidamente a propriedade e o método da lista e economize tempo
  • Mostra todas as propriedades e métodos dos quais você pode não estar ciente
  • Evite cometer erros de ortografia

Esta opção está habilitada por padrão e eu recomendo mantê-la assim.

Opções Auto Quick Info

Quando você digita uma função na planilha do Excel, ela mostra algumas informações sobre a função - como os argumentos que ela usa.

Da mesma forma, quando você digita uma função em VBA, ele mostra algumas informações (conforme mostrado abaixo). Mas para que isso aconteça, você precisa se certificar de que a opção Auto Quick Info está habilitada (o que é por padrão).

Opções de dicas de dados automáticos

Ao percorrer o código linha por linha e colocar o cursor acima do nome de uma variável, ele mostrará o valor da variável.

Acho que é bastante útil ao depurar o código ou percorrer o código linha por linha que contém loops.

No exemplo acima, assim que coloco o cursor sobre a variável (var), ele mostra o valor que ela contém.

Esta opção está habilitada por padrão e eu recomendo que você a mantenha assim.

Recuo Automático

Como os códigos VBA podem ficar longos e confusos, o uso de indentação aumenta a legibilidade do código.

Ao escrever o código, você pode recuar usando a tecla tab.

Esta opção garante que quando você terminar com a linha recuada e pressionar Enter, a próxima linha não comece do início, mas tenha o mesmo recuo da linha anterior.

No exemplo acima, depois de escrever a linha Debug.Print e pressionar Enter, ela começará logo abaixo dela (com o mesmo nível de recuo).

Acho essa opção útil e desativá-la significaria recuar manualmente cada linha em um bloco de código que desejo recuar.

Você pode alterar o valor do recuo se desejar. Eu mantenho o valor padrão.

Edição de texto por arrastar e soltar

Quando esta opção está ativada, permite que você selecione um bloco de código e arraste e solte-o.

Isso economiza tempo, pois você não precisa primeiro cortar e depois colá-lo. Você pode simplesmente selecionar e arrastar.

Esta opção é habilitada por padrão e eu recomendo que você a mantenha assim.

Padrão para exibição de módulo completo

Quando esta opção estiver habilitada, você poderá ver todos os procedimentos em um módulo em uma única lista rolável.

Se você desabilitar esta opção, você só poderá ver um módulo por vez. Você terá que fazer uma seleção do módulo que deseja ver no menu suspenso no canto superior direito da janela de código.

Esta opção está habilitada por padrão e eu recomendo mantê-la assim.

Um motivo pelo qual você pode querer desabilitá-lo quando você tem vários procedimentos que são enormes e a rolagem entre eles está demorando, ou quando você tem muitos procedimentos e deseja encontrá-los rapidamente em vez de perder tempo rolando.

Separador de Procedimento

Quando esta opção está habilitada, você verá uma linha (uma espécie de divisor) entre dois procedimentos.

Acho isso útil, pois mostra visualmente quando um procedimento termina e o outro começa.

Ele é ativado por padrão e eu recomendo mantê-lo assim.

Guia de formato do editor

Com as opções na guia Formato do Editor, você pode personalizar a aparência do seu código na janela de código.

Pessoalmente, mantenho todas as opções padrão, pois estou bem com isso. Se desejar, você pode ajustar isso com base em sua preferência.

Para fazer uma alteração, você precisa primeiro selecionar uma opção na caixa Cores do código. Depois que uma opção é selecionada, você pode modificar o primeiro plano, o plano de fundo e a cor do indicador para ela.

O tipo e o tamanho da fonte também podem ser definidos nesta guia. É recomendável usar uma fonte de largura fixa, como Courier New, pois torna o código mais legível.

Observe que o tipo de fonte e a configuração de tamanho permanecerão os mesmos para todos os tipos de código (ou seja, todos os tipos de código mostrados na caixa de cores do código).

Abaixo está uma imagem onde selecionei Breakpoint, e posso alterar a formatação dela.

Observação: a opção Barra indicadora de margem, quando ativada, mostra uma pequena barra de margem à esquerda do código. É útil porque mostra indicadores úteis ao executar o código. No exemplo acima, ao definir um ponto de interrupção, ele mostrará automaticamente um ponto vermelho à esquerda da linha na barra de margem. Como alternativa, para definir um ponto de interrupção, você pode simplesmente clicar na barra de margem à esquerda da linha de código que deseja como ponto de interrupção.

Por padrão, a Barra Indicadora de Margem está habilitada e recomendo mantê-la assim.

Um dos meus alunos do curso VBA achou essas opções de personalização úteis e ela era daltônica. Usando as opções aqui, ela foi capaz de definir a cor e os formatos que tornaram mais fácil para ela trabalhar com o VBA.

Guia geral

A guia Geral tem muitas opções, mas você não precisa alterar nenhuma delas.

Eu recomendo que você mantenha todas as opções como estão.

Uma opção importante para saber sobre esta guia é o tratamento de erros.

Por padrão, ‘Interromper em erros não tratados’ está selecionado e eu recomendo mantê-lo assim.

Essa opção significa que se o seu código encontrar um erro e você ainda não tiver tratado esse erro no código, ele será interrompido e interrompido. Mas se você tiver corrigido o erro (como usando as opções On Error Resume Next ou On Error Goto), ele não será interrompido (já que os erros não são solucionados).

Guia de encaixe

Nesta guia, você pode especificar quais janelas deseja encaixar.

O encaixe significa que você pode corrigir a posição de uma janela (como o explorador de projetos ou a janela Propriedades) para que ela não flutue e você possa ver todas as janelas diferentes ao mesmo tempo.

Se você não encaixar, poderá ver uma janela por vez no modo de tela inteira e terá que alternar para a outra.

Eu recomendo manter as configurações padrão.

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

wave wave wave wave wave