Macros - Otimize a repetição de tarefas
Num sentido amplo, uma Macro é uma sequência de instruções que executam um conjunto de operações, por uma determinada ordem. O objetivo de criação e utilização de Macros é trabalhar com mais eficiência e com menos erros.
Sendo uma Macro um conjunto de ações que podemos executar várias vezes, a sua aplicação faz sentido para tarefas que efetuamos repetidamente. Por esta razão, também podemos gravar uma Macro para automatizar essas tarefas.
Quando criamos uma Macro, estamos a gravar cliques do rato e batimentos de teclas. Depois de criar uma Macro, podemos editá-la para efetuar pequenas alterações ao seu modo de funcionamento, de acordo com o nosso propósito.
De acordo com o seu tipo de criação, as Macros podem ser:
- de Comandos – quando utilizamos o Gravador de Macros
- de Funções – quando são criadas a partir do editor VBA (Visual Basic for Applications)
As Macros são executadas a partir de botões ou opções de menu, por exemplo, ao contrário das funções, que são executadas a partir das células.
Macros de Comandos
As Macros de Comandos são mais fáceis de criar, uma vez que Excel grava as nossas ações sobra a folha de cálculo e converte-as numa Macro simples para a executarmos quando quisermos.
Antes de entrarmos nos detalhes de criar Macros, é importante clarificar que uma Macro de Comandos é, no fundo, um conjunto de procedimentos e que um procedimento é uma nova instrução a realizar.
Os procedimentos começam sempre com o Sub, o nome da macro (cada macro deve ter um nome único) e um par de parênteses. Os parênteses ficam vazios a menos que o procedimento use um ou vários argumentos. A afirmação de Sub End transmite o fim do procedimento. As linhas no meio, entre Sub e Sub End compreendem as instruções ou código do procedimento.
Assim, a sintaxe de uma Macro é:
Sub nome da macro ( )
Instrução 1
Instrução 2
…
Instrução n
End Sub
As Macro podem incluir comentários. Os comentários são simplesmente notas que escrevemos e que são ignoradas na execução do procedimento. Por outras palavras, quando o comando encontra um apóstrofe, ignora o resto do texto na linha. Uma linha de comentário começa com um apóstrofe e também podemos escrever um comentário na mesma linha de uma afirmação.
Macro de Funções
As Macros de Funções são, normalmente, criadas para operações específicas e que retornam um valor de saída. Quando o utilizador pretende maior complexidade, pode criar estas Macros através de programas em linguagem VBA.
Uma Macro de função sempre devolve um valor único (como uma função “normal” devolve um valor único). Podemos utilizar as funções tal como o faríamos numa folha de cálculo, com a exceção de que são definidas no contexto do VBA.
Criar uma Macro
Para criar uma Macro de Comandos, escolhemos a opção Macros, no separador Programador, e atribuímos um nome. Neste caso, vamos atribuir o nome genérico Macro1.
Vamos considerar que temos a necessidade de formatar várias células, de forma recorrente, conforme a imagem abaixo.
As caraterísticas de formatação que definimos são: Fonte: Arial, Negrito, Tamanho: 12
Vamos, agora, proceder à criação da Macro.
No exemplo anterior, vimos como criar uma Macro de Comandos. Vamos ver agora o que devemos ter em consideração para criar uma Macro de Funções.
Uma função pode ser definida como um programa que produz um resultado, a partir dos parâmetros introduzidos.
É possível criar-se funções próprias, para além daquelas que o Excel disponibiliza. Em ambos os casos, as funções são executadas a partir das células da folha de cálculo.
Então, a sintaxe geral de uma função é a seguinte:
Function nome da função (parâmetro1, parâmetro 2, etc…)
nome da função = valor ou expressão
End function
Assim, uma função pode ser definida pelo:
- nome claro da função a desempenhar.
- parâmetro - valor (ou valores) que fica entre parêntesis e sobre o qual é feita a execução da função. Algumas funções, não precisam de parâmetros, como por exemplo as funções PI(), Today() e Rand().
- resultado – valor resultante da execução dos parâmetros na função.
O procedimento de escrever as funções dentro do módulo é antecedido pela criação de um novo módulo, se for necessário, através do comando: Insert > Module
Vamos por em prática o que mencionamos anteriormente. Aqui o que pretendemos é criar uma função que calcule o valor das células da coluna faturação, conforme figura seguinte.
Para definir a função faturacao, temos de aceder ao comando Visual Basic no separador Programador, ou através das teclas ALT+F11, clicadas em conjunto, e, num novo módulo, definir os procedimentos:
Nesta função temos:
- Function: palavra que indica o inicio
- faturacao: o nome da função
- (valorvendas,quantidadesvendidas): os argumentos. A ordem destes é definida pelo utilizador.
- End Function: expressão que indica o final da função, é introduzida automaticamente pelo Editor.
Para executar a macro, temos agora de escrevê-la na célula. Depois, basta aplicar a função para as restantes células da coluna, conforme a seguinte figura:
Executar uma Macro de comandos
Existem várias formas de executar uma Macro no Excel.
Já vimos que uma Macro é uma ação ou um conjunto de ações que podemos utilizar para automatizar tarefas rotineiras. Vimos também que para executar uma macro, clicamos no comando de Macros no separador Programador.
Dependendo de como é criada uma macro para ser executada, também poderemos executá-la ao premir de combinação CTRL + SHIFT + tecla de atalho ou, ainda de uma maneira mais fácil, clicando num botão na barra de ferramentas de acesso rápido.
Como fazemos isto?
Vamos a Ficheiro > Opções e escolhemos a Barra de Ferramentas de Acesso Rápido. Depois, em Escolher comandos de selecionamos Macros e clicamos em Adicionar. Se quisermos, podemos mudar o símbolo e o nome do botão em Modificar.
Na figura seguinte, conseguimos visualizar melhor os passos descritos anteriormente para criarmos um botão para executar as Macros.
Temos visto macros que funcionam sobre células previamente selecionadas, ou seja, macros que executam as instruções sempre na mesma célula. São Macros com referências absolutas. Se tivermos uma Macro que executa as operações a partir de uma célula indicada, esta é uma Macro com referências relativas.
Antes de executarmos uma Macro, devemos definir o nível de segurança pretendido para a sua execução. Devemos ter em atenção que, dependendo do tipo de procedimentos definidos para as Macros, a execução de todas as Macros pode implicar prejuízos para o trabalho realizado.