O melhor guia VBA (para iniciantes) que você precisará
- 2421
- 191
- Leroy Lebsack
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.
ÍndiceA 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.