O melhor guia VBA (para iniciantes) que você precisará

O melhor guia VBA (para iniciantes) que você precisará

A plataforma de programação VBA que é executada em quase todos os produtos do Microsoft Office é uma das ferramentas mais poderosas que alguém pode usar para aprimorar o uso desses produtos.

Este guia VBA para iniciantes mostrará como adicionar o menu do desenvolvedor ao seu aplicativo do escritório, como entrar na janela do editor do VBA e como as instruções e loops básicos do VBA funcionam para que você possa começar a usar o VBA no Excel, Word, PowerPoint, Outlook e OneNote.

Índice

    A lista de esquerda inclui todos os menus disponíveis e comandos de menu disponíveis nesse aplicativo de escritório. A lista à direita são aqueles que estão disponíveis atualmente ou ativados.

    • Você deve ver o desenvolvedor na lista à direita, mas não será ativada. Basta selecionar a caixa de seleção para ativar o menu do desenvolvedor.
    • Se você não vê Desenvolvedor Disponível à direita e depois mude a esquerda Escolha comandos de suspensão para Todos os comandos. Encontrar Desenvolvedor Da lista e selecione Adicione >> no centro para adicionar esse menu à fita.
    • Selecione OK quando você acabar.
    • Depois que o menu do desenvolvedor estiver ativo, você pode voltar para a janela principal do aplicativo e selecionar Desenvolvedor Do menu superior. 
    • Em seguida, selecione Exibir código Do grupo de controles na fita para abrir a janela do editor VBA.
    • Isso abrirá a janela do editor do VBA, onde você pode digitar o código que aprenderá nas próximas seções.
    • Tente adicionar o menu do desenvolvedor a alguns dos aplicativos do escritório que você usa todos os dias. Depois de se sentir confortável em abrir a janela do editor do VBA, continue na próxima seção deste guia.

    Dicas gerais de programação VBA para iniciantes

    Você notará quando o editor do VBA é aberto, as opções de navegação no painel esquerdo parecem diferentes de um aplicativo de escritório para o outro.

    Isso ocorre porque os objetos disponíveis onde você pode colocar o código VBA dependem de quais objetos existem no aplicativo. Por exemplo, no Excel, você pode adicionar código VBA à pasta de trabalho ou objetos de folha. Na palavra, você pode adicionar código VBA aos documentos. No PowerPoint, apenas para módulos.

    Então, não se surpreenda com os diferentes menus. A estrutura e a sintaxe do código VBA são as mesmas em todos os aplicativos. A única diferença são os objetos que você pode fazer referência e as ações que você pode executar sobre esses objetos através do código VBA.

    Antes de mergulharmos nos diferentes objetos e ações que você pode executar neles via código VBA, vamos primeiro olhar para a estrutura e sintaxe VBA mais comuns que você pode usar ao escrever código VBA.

    Onde colocar o código VBA

    Quando você está no editor VBA, você precisa usar as duas caixas suspensas na parte superior da janela de edição para escolher qual objeto você deseja anexar o código e quando deseja que o código seja executado.

    Por exemplo, no Excel, se você escolher Planilha e Ativar, O código será executado sempre que a planilha for aberta. 

    Outras ações da planilha que você pode usar para acionar seu código VBA incluem quando a planilha mudar, quando está fechada (desativada), quando o cálculo da planilha é executado e mais.

    Quando você adiciona código VBA no editor, sempre coloque seu código VBA no objeto e usando a ação correta que você deseja usar para acionar esse código.

    Declarações VBA se

    Uma declaração IF funciona no VBA como funciona em qualquer outra linguagem de programação.

    A primeira parte da declaração IF analisa se uma condição ou conjunto de condições é verdadeira. Essas condições podem ser unidas por um e / ou operador para vinculá -las.

    Um exemplo seria verificar se uma nota em uma planilha está acima ou abaixo de um grau de “passagem” e atribuindo o status de passagem ou falha a outra célula.

    Se células (2, 2)> 75, então as células (2, 3) = “passa” mais células (2, 3) = “falha”

    Se você não deseja a declaração inteira em uma única linha, você pode dividi -la em várias linhas adicionando um símbolo "_" no final das linhas.

    Se células (2, 2)> 75 então _
    Células (2, 3) = “passa” else _
    Células (2, 3) = “falha”

    Usar esta técnica geralmente pode tornar o código muito mais fácil de ler e depurar.

    VBA para os próximos loops

    Se as declarações são ótimas para comparações únicas, como o exemplo acima de olhar para uma única célula. Mas e se você quiser fazer uma faixa inteira de células e fazer o mesmo se a instrução em cada?

    Nesse caso, você precisaria de um loop para. 

    Para fazer isso, você precisaria usar o comprimento de um intervalo e percorrer esse comprimento pelo número de linhas que contêm dados.

    Para fazer isso, você precisa definir o alcance e as variáveis ​​celulares e percorrer através deles. Você também precisará definir um contador para poder emitir os resultados para a linha apropriada. Então seu código VBA teria primeiro esta linha.

    Dim RNG como alcance, célula como alcance
    Dim Rowcounter como inteiro

    Defina o tamanho do alcance como segue. 

    Set rng = range ("b2: b7")
    linecounter = 2

    Por fim, você pode criar o seu loop para passar por todas as células nesse intervalo e fazer a comparação.

    Para cada célula em RNG Se célula.Valor> 75 então _  Células (rowcounter, 3) = "passa" else _  Células (rowcounter, 3) = "falha"  linecounter = linecounter + 1 Próxima célula

    Depois que este script VBA é executado, você vê os resultados na planilha real.

    VBA enquanto loops

    Um pouco o loop também percorre uma série de declarações, assim como o loop for, mas a condição do loop para continuar é uma condição restante verdadeira.

    Por exemplo, você pode escrever o mesmo para o loop acima, como um loop de tempo, simplesmente usando a variável da linha de linha como segue.

    Enquanto linhas < rng.Count + 2 Se células (ROWCURTER, 2)> 75 Então _  Células (rowcounter, 3) = "passa" else _  Células (rowcounter, 3) = "falha"  linecounter = linecounter + 1 Wend

    Note o rng.Contagem + 2 O limite de terminal é necessário porque o contador da linha começa em 2 e precisa terminar na linha 7, onde os dados termina. No entanto, a contagem do intervalo (B2: B7) é de apenas 6, e o loop while só terminará quando o contador for maior que o contador - então o último valor da linha de linha precisa ser 8 (ou RNG.Contagem + 2).

    Você também pode configurar o loop while da seguinte maneira:

    Enquanto linhas <= rng.Count + 1

    Você só pode incrementar a contagem de faixas (6) por 1, porque uma vez que a variável da linha atinge o final dos dados (linha 7), o loop pode terminar.

    VBA faz enquanto faz até os loops

    Faça enquanto e faça até que os loops sejam quase idênticos aos loops, mas trabalhem um pouco diferentes.

    • O Enquanto loop verifica se uma condição é verdadeira no início do loop.
    • O Loop do-while Verifica se uma condição é verdadeira após a execução das declarações no loop.
    • O Loop do pêlo Verifica se uma condição ainda é falsa após a execução do loop.

    Nesse caso, você reescreveria o loop while acima da seguinte.

    Fazer Se células (ROWCURTER, 2)> 75 Então _  Células (rowcounter, 3) = "passa" else _  Células (rowcounter, 3) = "falha"  linecounter = linecounter + 1 Faça um loop durante a linha de linha < rng.Count + 2

    Nesse caso, a lógica não muda muito, mas se você quiser garantir que a comparação lógica ocorra depois que todas as declarações são executadas (permitindo que todas elas executem, não importa o que pelo menos uma vez), então um faça-quando ou loop de doen-until é a opção certa.

    Declarações de caso de seleção VBA

    O tipo final de declaração lógica que você precisará entender para começar a estruturar seu código VBA é selecionar instruções de caso.

    Dado o exemplo acima, digamos que você queira ter um método de classificação que não seja apenas falha de passagem. Em vez disso, você deseja atribuir uma nota de carta de um a f.

    Você pode fazer isso com a seguinte instrução CASE SELECT:

    Para cada célula em RNG Selecione a célula do caso  Caso 95 a 100  Células (rowcounter, 3) = "a" Caso 85 a 94  Células (rowcounter, 3) = "b"  Caso 75 a 84  Células (rowcounter, 3) = "c"  Caso 65 a 74  Células (Rowcounter, 3) = "D"  Caso 0 a 64  Células (rowcounter, 3) = "f"  Final Selecione linecounter = linecounter + 1 Próxima célula

    A planilha resultante após este script VBA se parece com o abaixo.

    Agora você sabe tudo o que você precisa saber para começar a usar o VBA em seus aplicativos do Microsoft Office.