Como escrever uma macro

por João Henrique

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

Gostou deste artigo? Então deixe um comentário e assine para receber as dicas por e-mail.

Veja também:





4 comentários:

Michordia disse...

Muito legal este site. Parabéns. Sempre tive curiosidade sobre Macros, agora estou tendo oportunidade para tirar dúvidas.

João Henrique disse...

Olá Michordia, que bom que você está gostando. Obrigado

Denis disse...

Interessante o blog criado por vc. Engraçado que encontrei este blog diante de uma situação no trabalho e agora posso utilizar o conhecimento que estou adquirindo aqui.
A resposta que é dada fazendo o exercício sugerido pelo blog é, na verdade, uma contagem regressiva, sendo que há uma MsgBox para cada "texto".

Marcos Blog disse...

Já vi o que acontece, ele executa 4 macros, uma após a outra. Muito interessante.

Eu uso muito excel e sou até bom, mas de VBA eu não sei nada.

Parabéns pelo blog.