Como escrever uma macro
Depois de conhecer o editor de código VBA no Excel, Como inserir uma macro, a diferença entre macro e função e como executar uma macro, vamos começar a aprender como escrever as macros propriamente ditas.
Já vimos que o formato básico de um código de macro é assim:
Private Sub primeiraMacro()
End Sub
Tudo o que ficar entre essas duas linhas é o código da macro cujo nome é "primeiraMacro". É nesse espaço que a gente escreve os comandos VBA, as "ordens" que daremos ao computador (exatamente, escrever código de computador nada mais é do que dar um monte de ordens para o computador). Sendo que essas ordens não podem ser escritas de qualquer forma, senão o computador não entende. É preciso escrever de acordo com uma linguagem de programação, que no caso é VBA.
Em VBA, o computador vai ler o código da macro de cima pra baixo, linha a linha. Em cada linha você poderá escrever um comando VBA. Ao terminar de executar o comando da primeira linha, o computador irá executar o comando da segunda linha, depois o da terceira linha, e assim por diante, até chegar no "End Sub", que indica o final da macro.
Pra começar, que tal aprender a mandar o computador exibir uma mensagem na tela? Pra isso, é só usar uma função chamada MsgBox. Veja o exemplo:
Exemplo 1:
A função MsgBox exibe uma mensagem na tela com o que estiver escrito logo em seguida à ela, após o espaço. Então no exemplo acima aparece o texto "funcionou". Veja outros exemplos:
Reparou que às vezes eu escrevi a mensagem com aspas, e às vezes não? Quando usamos aspas em VBA, estamos dizendo que o que está dentro das aspas é simplesmente um texto. Para mostrar um número, não precisamos colocar as aspas, por isso que os exemplos 3 e 4 dão o mesmo resultado.
Já os exemplos 5 e 6 dão resultados diferentes. No exemplo 5, mandamos o Excel exibir a mensagem (MsgBox) 30+5, como 30+5 é igual a 35, a mensagem que aparece é o resultado dessa soma: 35. No exemplo 6, como usamos aspas, o que aparece na mensagem é o texto, exatamente como está escrito: 30 + 5 . Neste caso, não é realizada a soma.
Se lembra que eu disse que cada linha no Excel pode ter um comando, e os comandos são executados de cima para baixo? Então o que acontece se você executar o código abaixo?
Public Sub primeiraMacro()
MsgBox "3..."
MsgBox "2..."
MsgBox "1..."
MsgBox "Já!"
End Sub
Faça o teste no Excel, e deixe a resposta aqui nos comentários. Até mais