A plataforma Programação VBA que roda em quase todos os produtos do Microsoft Office é uma das ferramentas mais poderosas que qualquer pessoa pode usar para aprimorar seu uso desses produtos.
Este guia do VBA para iniciantes mostrarão como adicionar o menu Desenvolvedor ao seu aplicativo do Office, como entrar na janela do editor VBA e como 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 .
O guia VBA usa a versão mais recente dos produtos Microsoft Office. Se você possui uma versão anterior, poderá ver algumas diferenças entre as capturas de tela.
Como ativar e usar o editor VBA
Em qualquer escritório produtos usados neste guia, você pode perceber que não possui o menu Desenvolvedor mencionado. O menu do desenvolvedor está disponível apenas no Excel, Word, Outlook e Powerpoint. O OneNote não oferece uma ferramenta para editar o código VBA de dentro do aplicativo, mas você ainda pode fazer referência à API do OneNote para interagir com o OneNote de outros programas do Office.
Você aprenderá como fazer isso no próximo guia Advanced VBA.
A lista da esquerda inclui todos os menus e comandos de menu disponíveis no aplicativo Office. A lista à direita é a que está disponível ou ativada no momento.
In_content_1 all: [300x250] / dfp: [640x360]->Dicas gerais de programação do VBA para iniciantes
Você perceberá que quando o editor do VBA for aberto, as opções de navegação no painel esquerdo parecerão diferentes de um aplicativo do Office 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 a objetos de pasta de trabalho ou planilha. No Word, você pode adicionar código VBA aos documentos. No Powerpoint, apenas para módulos.
Portanto, não se surpreenda com os diferentes menus. A estrutura e a sintaxe do código VBA são iguais em todos os aplicativos. A única diferença são os objetos que você pode referenciar e as ações que você pode executar nesses objetos através do código VBA.
Antes de mergulharmos nos diferentes objetos e ações que você pode executá-los via código VBA, primeiro observe a estrutura e a sintaxe mais comuns do VBA que você pode usar ao escrever o código VBA.
Onde colocar o código VBA
Quando você estiver no Editor VBA, você precisa usar as duas caixas suspensas na parte superior da janela de edição para escolher a qual objeto deseja anexar o código e quando deseja que o código seja executado.
Por exemplo, em Excel, se você escolher Planilhae Ativar, o código será executado sempre que a planilha for aberta.
Outra planilha as ações que você pode usar para acionar seu código VBA incluem quando a planilha é alterada, quando é fechada (desativada), quando o cálculo da planilha é executado e muito mais.
Ao adicionar código VBA ao editor, sempre faça coloque seu código VBA no objeto e use a ação correta que você deseja usar para acionar esse código.
Instruções IF do VBA
Um IF A instrução funciona no VBA, assim como em qualquer outra linguagem de programação.
A primeira parte da instrução IF analisa se uma condição ou conjunto de condições é verdadeiro. Essas condições podem ser unidas por um operador AND ou OR para vinculá-las.
Um exemplo seria verificar se uma nota em uma planilha está acima ou abaixo de uma nota "aprovada" e atribuir a aprovação ou aprovação. status de falha para outra célula.
Se as células (2, 2)>75 Então as células (2, 3) = "Passam" outras células (2, 3) = "Fail"
Se você não quiser a instrução inteira em uma única linha, poderá dividi-la em várias linhas adicionando um símbolo "_" no final das linhas.
Se as células (2, 2)>75 Então
Células (2, 3) = "Passam" a mais _
Células (2, 3) = "Fail"
O uso dessa técnica geralmente torna o código muito mais fácil de ler e depurar.
VBA para próximos loops
As instruções IF são ótimas para comparações únicas, como no exemplo acima, de olhar para uma única célula. Mas e se você quiser percorrer um intervalo inteiro de células e fazer a mesma instrução SE em cada uma?
Nesse caso, você precisará de um loop FOR.
Para fazer isso, você precisará usar o comprimento de um intervalo e percorrer esse comprimento pelo número de linhas que contêm dados.
Para fazer isso, você precisa para definir as variáveis de intervalo e célula e percorrê-las. Você também precisará definir um contador para poder gerar os resultados na linha apropriada. Portanto, seu código VBA primeiro terá essa linha.
Dim rng As Range, célula As Range
Dim rowCounter as Integer
Defina o tamanho do intervalo da seguinte forma.
Defina rng = Range ("B2: B7")
rowCounter = 2
Finalmente, você pode criar seu loop FOR para percorrer todas as células desse intervalo e fazer a comparação.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
Depois que esse Script VBA for executado, você verá o resulta na planilha real.
VBA While Loops
Um loop While também percorre uma série de instruções, assim como o loop FOR, mas a condição do loop para continuar é uma condição restante true.
Por exemplo, você pode escrever o mesmo loop FOR acima, como um loop WHILE, simplesmente usando a variável rowCounter da seguinte maneira.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
Nota: o limite de terminação rng.Count + 2é necessário porque o contador de linhas começa em 2 e precisa terminar na linha 7 onde os dados terminam. No entanto, a contagem do intervalo (B2: B7) é apenas 6 e o loop While só termina quando o contador for MAIOR que o contador - portanto, o último valor rowCounter precisa ser 8 (ou rng.Count + 2).
Você também pode configurar o loop While da seguinte forma:
While rowCounter <= rng.Count + 1
Você pode apenas incremente a contagem do intervalo (6) em 1, porque uma vez que a variável rowCounter atinge o final dos dados (linha 7), o loop pode terminar.
VBA Fazer enquanto e fazer até fazer loops
Os loops While e Do Até são quase idênticos aos loops While, mas funcionam ligeiramente diferentes.
Nesse caso, você reescreveria t ele loop While, como a seguir, como loop Do-While.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
Nesse caso, a lógica não muda muito, mas se você quiser ter certeza de que a lógica a comparação ocorre depois que todas as instruções são executadas (permitindo que todas elas sejam executadas, independentemente do que seja pelo menos uma vez), e então um loop Do-While ou Do-Até é a opção correta.
Instruções de caso de seleção do VBA
O tipo final de instrução lógica que você precisará entender para começar a estruturar o seu código VBA são as instruções de Select Case.
Dado o exemplo acima, digamos que você queira ter um método de classificação que não seja apenas reprovação. Em vez disso, você deseja atribuir uma nota de letra de A a F.
Você pode fazer isso com a seguinte instrução Select Case:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
A planilha resultante após a execução desse script VBA, será semelhante ao abaixo.
Agora você sabe tudo o que precisa saber para começar a usar o VBA nos aplicativos do Microsoft Office.