Macros

Novembro 2016

Como seria bom poder criar seus próprios comandos ... Não precisar mais executar, cada mês, uma dezena de manipulações para criar o mesmo relatório ... Poder clicar em um botão ou tecla de atalho para que esse relatório seja impresso automaticamente... Tudo isso é possível com a maioria das planilhas atuais, incluindo o Excel e o Calc. Basta criar um macro: um mini-programa que executa uma tarefa repetitiva. Os Macros são escritos em uma linguagem de programação específica. Para o Excel, trata-se do Visual Basic para Aplicativos (VBA), enquanto que os macros OOo são, geralmente, escritos em OpenOffice.org Basic, mas também podem ser escrito em JavaScript, Python ou BeanShell (Java); neste caso, trata-se de um script. Nesta dica, vamos tratar do macros VBA e OOo Basic.

Felizmente, não é preciso ser um programador para criar uma macro pois o Excel e o Calc, como muitas outras planilhas, teem um gravador de macros. Ele funciona um pouco como um gravador ou uma filmadora, exceto que, em vez de gravar áudio ou vídeo, ele grava pressões nas teclas e ações do mouse. Esta dica mostra como criar, executar e editar macros.

O que é um macro ?


Um macro é um procedimento, ou seja, um conjunto de instruções que executam uma tarefa específica e retornam um resultado. Existem duas maneiras:
  • Uma sub-rotina é um procedimento que executa uma tarefa. Seu código começa com a palavra "Sub" e termina com as palavras "End Sub". Um macro é um tipo de procedimento de subrotina. Nesta dica, os termos rotinas e sub-rotinas são intercambiáveis.
  • Uma função é um procedimento que retorna um resultado. Provavelmente, você sabe que as funções de uma planilha , como =SOMA() ou =MÉDIA(). As linguagens de programação como o VBA podem criar funções personalizadas utilizáveis como se elas fizessem parte do software. Uma função começa sempre com a palavra "Function" e termina com "End Function".

Gravar um macro


O gravador de macros do Excel ou do Calc salva todas as suas ações, com o teclado ou com o mouse, em um macro. Execute-o, efetue a tarefa a ser automatizada e pare-o.

Antes de iniciar a gravação de um macro, é melhor verificar se você conhece todas as etapas da tarefa. Uma boa ideia é a de anotar todas elas em um papel ou testar primeiro, para evitar surpresas.
O gravador de macros registra todas as suas ações, incluindo erros de digitação ou outros erros. Gravar apenas o necessário e, sem erro, requer um bom conhecimento anterior das diversas etapas.

A ordem das etapas de gravação de um macro difere de acordo com a planilha utilizada, mas o procedimento é sempre comparável. Antes de começar, veja as configurações relacionadas com um macro.

Localização de armazenamento: Módulos


Como veremos em breve, em programação objeto, tudo (ou quase) é um objeto. Uma pasta de trabalho é composta de diferentes objetos, planilhas, gráficos (Excel) e módulos. Se uma pasta de trabalho contém um procedimento, então ela contém um objeto Módulo, que contém o código. O conjunto de objetos de uma pasta de trabalho é, muitas vezes, chamado de projeto. O editor exibe os projetos e os objetos associados. Quando você salva uma pasta de trabalho, na realidade você está salvando o projeto com todos os objetos da pasta de trabalho. Um módulo é similar a um documento de processamento de texto e se comporta como ele. Ele contém instruções que compõem os procedimentos.

Em princípio, não é possível armazenar um macro em vários locais:
  • Em um módulo da pasta de trabalho ativa;
  • Em um módulo genérico.


Um macro armazenado na pasta de trabalho ativa só pode ser executado quando esta pasta de trabalho estiver aberta. Você escolhe esta opção para macros estritamente ligados a uma pasta de trabalho precisa, como um macro de criação gráfica e de lançamento de impressão configurada cuidadosamente.

Há, porém, um módulo genérico particular que, no Excel, se situa em "Macros pessoais" e, no Calc, em "Meus Macros". Em ambos os casos, trata-se de um módulo cujos procedimentos estão sempre disponíveis na abertura de qualquer pasta de trabalho.

Conforme a planilha, o nome do módulo genérico muda. No Calc, chama-se Módulo1 e fica armazenado na pasta de trabalho padrão dos Meus Macros. No Excel, é a pasta de trabalho Macros pesssoais, uma pasta de trabalho oculta salva na pasta XLStart, uma subpasta do Excel presente no disco rígido. Esta pasta de trabalho se abre automaticamente na abertura do Excel, mas, como ela está oculta, você não poderá vê-la. No entanto, os macros que ela contém são acessíveis a partir de todas as outros pastas.

A pasta de trabalhode macros pessoais do Excel é um arquivo chamado Perso.xls. Em geral, ele fica na pasta "C: WindowsApplication DataMicrosoftExcelXLStart". Cuidado para não excluí-la ou movê-la acidentalmente. Se você costuma salvar macros, ou salva macros complexos, salve de vez em quando o seu conteúdo, para evitar problemas.

O Excel também pode salvar um macro em outra pasta de trabalho. Esta opção é raramente usada e, quando isso acontece, é na criação de uma nova pasta de trabalho que faz parte do processo de Macro.

Adicionar um módulo


Se o número de procedimentos aumenta, você provavelmente vai querer reorganizá-los e adicionar um, ou mais novos módulos, a um projeto. Você pode querer colocar todas as funções em um único módulo e as sub-rotinas em outro. Deste modo, será mais fácil encontrar cada um dos procedimentos procurados no editor. Para adicionar um novo módulo, siga estes passos:

No Excel

  • No menu, clique em Ferramentas > Macro > Visual Basic Editor ou pressione as teclas ALT+F11 simultaneamente.
  • No menu, clique em Inserir > Módulo.

No Calc

  • No menu, clique em Ferramentas > Macros > Gerenciar Macros > OpenOffice.org Basic (Calc).
  • Clique em Gerenciar. A janela Gestão de macros do OpenOffice.org Basic aparece.
  • Mova-se na árvore da esquerda até o local onde você quer criar um novo módulo e clique em "Novo".
  • Digite o nome do novo módulo e clique em OK. Você pode fechar as outras janelas.


Renomear um módulo


Quando um projeto tem vários módulos (ex: quando você adiciona outros), você pode querer alterar o nome de antigos módulos. Veja como renomear um módulo:

No Excel

  • Abra o editor do VBA.
  • Escolha do módulo a ser renomeado Explorer do projeto. Ele deve se encontrar na pasta "Módulos", sob o projeto que a contém.
  • Clique no cabeçalho de propriedade (Name), ou clique duas vezes no seu nome padrão, ao lado da propriedade "Name", na janela Propriedades.
  • Digite o novo nome e pressione ENTER.

No Calc

  • Clique em Ferramentas > Macros > Gerenciar Macros > OpenOffice.org Basic e clique em Gerenciar, ou no ícone de seleção do módulo do IDE Basic para abrir a caixa de diálogo "Gestão de Macros".
  • Clique duas vezes no módulo a ser renomeado, dando uma parada entre os dois cliques. Digite o novo nome.
  • No IDE Basic, clique com botão direito do mouse no nome do módulo ou da caixa de diálogo que aparec em uma das abas situadas na parte inferior da tela, selecione "Renomear" e digite o novo nome.
  • Pressione a tecla ENTER para confirmar a alteração.

Excluir um módulo


Se você adicionou um módulo por engano, ou se você quer removê-lo, por uma razão qualquer, siga os seguintes passos:

No Excel

  • Abra o editor do VBA.
  • Na janela do Explorer do projeto, clique com o botão direito do mouse no módulo a ser removido.
  • Clique em Excluir < Nome do módulo > no menu de contexto.
  • Clique em "Não" quando for solicitado a exportar o módulo antes de removê-lo.

No Calc


Observação


O editor VBA permite exportar um módulo, ou seja, que você o salve com todo o seu código. Ao fazê-lo, você poderá importá-lo para outra pasta de trabalhopois, importando e exportando, você copia um conjunto de procedimentos entre as pastas de trabalho.

No Calc

  • Clique em Ferramentas > Macros > Gerenciar macros > OpenOffice.org Basic e clique em Gerenciar ou clique no ícone de seleção do módulo do EDI Basic para abrir a caixa de diálogo "Gestão dos macros".
  • Clique na guia Módulos ou Caixas de diálogo.
  • Selecione o módulo ou a caixa de diálogo a ser excluída da lista. Se necessário, clique duas vezes em uma entrada para visualizar suas sub-entradas.
  • Clique em Excluir.


A remoção definitiva de um módulo exclui todos os procedimentos e funções contidos no mesmo

Nome do Macro


Um nome de macro pode conter letras, dígitos, o sublinhado, mas nunca um espaço. Deve começar com uma letra e seu comprimento não deve exceder 64 caracteres. Tente escolher nomes curtos e significativos.

Dica: Atalho de teclado


Muitas vezes, é possível atribuir um atalho de teclado para um macro. Os atalhos de teclado dos macros prevalecem sobre os do programa. Geralmente, a maioria das combinações de teclas CTRL + letra já foram atribuídos. Melhor utilizar CTRL + SHIFT + letra para evitar confusão.

Macro absoluto ou relativo


Um macro pode ser absoluto ou relativo.

Se, após iniciar a gravação, você selecionar uma área ou uma célula específica, o macro também será executado e aplicará suas instruções à, ou a partir desta célula, ou intervalo específico, sem modificação possível: este é um macro absoluto. Faça isso quando você desejar realmente que o Macro afete a mesma célula, como definir uma data na célula A1.

Se você selecionar a célula, ou o intervalo, antes de executar o macro, o processo de seleção não será salvo no macro e, este será executado na, ou a partir da zona ativa, seja ela qual for: é um macro relativo. Além disso, o Excel pode criar macros totalmente relativos: Se você selecionar um intervalo durante a gravação, ele será referenciado relativamente em relação à célula inicialmente ativa, ao contrário do que acontece em um macro absoluto (padrão).

Os Macros relativos são muito mais polivalentes.

Gravar macros


Para salvar um macro com o Excel, siga estes passos:
  • Clique em Ferramentas > Macro > Novo macro. A caixa de diálodo "Gravar um macro" aparecerá.
  • Digite um nome na caixa "Nome do macro".
  • Selecione o local de armazenamento para o macro na área de lista suspensa "Gravar macro em" (por padrão, um novo macro é armazenado na pasta de trabalho atual).
  • Se for o caso, digite uma breve descrição da ação que executa o macro.
  • Você também pode atribuir um atalho de teclado para o macro, inserindo a letra a ser usada na caixa Tecla de atalho.
  • Clique em OK para fechar esta caixa de diálogo.



Para salvar um Macro no Calc, faça o seguinte:
  • Clique em Ferramentas > Macro > Salvar um macro. As etapas de escolha do nome, do local de armazenamento, etc. só serão realizados no final da gravação.


No Excel, a barra de status exibe a palavra "Gravação" e a barra de ferramentas "Parar gravação" aparece. No Calc, esta barra de ferramentas é chamada "Registro".



Não feche esta barra de ferramentas ! No Calc, isso terminará a gravação e você perderá tudo. No Excel, a gravação continua, quase contra a sua vontade. Você deve clicar em Ferramentas > Macro > Parar gravação, para que ela pare realmente.

No Excel, para salvar o macro relativamente, clique no botão de Referência relativa, na barra de ferramentas "Parar gravação".

Faça, cronologicamente, cada tarefa a ser registrada. Depois de efetuar as tarefas, clique no botão Parar a gravação (Excel) ou o Terminaar a gravação (Calc).

É fácil esquecer que a gravação está em andamento. Ela continua até parar realmente, é vital que para a gravação junto comas tarefas a serem gravadas. Se você se esqueceu de parar a tempo a gravação de um macro, você não precisa registrar tudo de novo: basta editar o macro e remover as ações desnecessárias. Veremos isso em breve.

No Calc, é aí que você deverá especificar a localização da gravação do macro (módulo genérico padrão ou módulo da pasta de trabalho ativa) e dar-lhe um nome. É melhor saber direitinho o que é um módulo.

Exemplo: criação de um macro de ajuste automático de uma coluna


Aqui você vai criar um pequeno macro que ajusta automaticamente a coluna ativa da planilha ativa e selecionar a célula A1. Ele será nomeado AjustCol (ou qualquer nome de sua escolha) e armazenado no módulo genérico para ser acessível a partir de qualquer pasta de trabalho.

1. Verifique se a célula A1 aparece na tela.
2. Comece a gravar um novo macro, seguindo o procedimento descrito acima.
3. Pressione simultaneamente as telas CTRL + A para selecionar toda a tabela.
4. Escolha Formatar > Coluna > Ajuste automático (Excel) ou Formatar > Coluna > Largura ideal (Calc).
5. Selecione a célula A1 na planilha atual.
6. Pare a gravação do macro.
Lembre-se que no Excel você nomeia o macro e escolhe o seu local de armazenamento antes do início da gravação, enquanto que no Calc você o faz depois de parar a gravação.
Sempre salve a pasta de trabalho com um macro antes de testá-la. Se ela contiver erros, você pode perder dados durante sua execução. Se você constatar a perda de dados após a execução, feche a pasta de trabalho sem salvá-la e abra de novo; isso vai restaurar os dados de origem.
7. Agora teste o novo macro. Digite em uma coluna qualquer um texto ou número maior que sua largura, e:
No Calc, selecione no menu Ferramentas > Macro> Executar um Macro e, em seguida, clique no macro em questão (você pode ter que navegar um pouco);
No Excel, selecione no menu Ferramentas > Macro> Macros, e clique no macro em questão na lista.
8. Clique em Executar: todas as colunas serão ajustadas automaticamente e o texto ou o número que você digitou será exibido em sua totalidade.


Artigo original
Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « Macros »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.