No Microsoft Access, as macros anexadas aos objetos de interface de utilizador (IU), como botões de comando, caixas de texto, formulários e relatórios, são conhecidas como macros de IU. Isto distingue-as de macros de dados, que são anexadas a tabelas. As macros (IU) são utilizadas para automatizar uma série de ações, como abrir outro objeto, aplicar um filtro, iniciar uma operação de exportação e muitas outras tarefas. Este artigo apresenta-lhe o novo construtor de macros redesenhado e mostra-lhe as tarefas básicas envolvidas na criação de uma macro de IU.
Nota: Este artigo não se aplica a aplicações Web do Access.
Neste artigo
Descrição Geral
As macros podem ser contidas em objetos de macro (por vezes denominadas macros autónomas) ou podem ser incorporadas nas propriedades do evento de formulários, relatórios ou controlos. As macros incorporadas tornam-se parte do objeto ou controlo no qual são incorporadas. Os objetos de macro são visíveis no Painel de Navegação, em Macros e as macros incorporadas não são.
Cada macro é composta por uma ou mais ações de macro. Dependendo do contexto em que está a trabalhar, algumas ações de macro podem não estar disponíveis para utilização.
Construtor de Macros
Eis alguns dos destaques principais da funcionalidade do Construtor de Macros.
-
Catálogo de Ações As ações de macro são organizadas por tipo e pesquisáveis.
-
IntelliSense Ao escrever expressões, o IntelliSense sugere valores possíveis e permite-lhe selecionar o correto.
-
Atalhos de teclado Utilize combinações de teclas para uma escrita de macros mais rápida e fácil.
-
Fluxo do programa Crie macros mais legíveis com linhas de comentário e grupos de ações.
-
Instruções condicionais Permita uma execução lógica mais complexa com suporte para If/Else/Else If aninhado.
-
Reutilização de macros O Catálogo de Ações apresenta outras macros que criou, permitindo-lhe copiá-las para aquela em que está a trabalhar.
-
Partilha mais fácil Copie uma macro e, em seguida, cole-a como XML num e-mail, mensagem de newsgroup, blogue ou site de exemplo de código.
Eis um vídeo que o orienta pelas áreas principais do Construtor de Macros.
Criar uma macro autónoma
Este procedimento cria um objeto de macro autónoma que aparecerá em Macros no Painel de Navegação. As macros autónomas são úteis quando quer reutilizar a macro em vários locais da aplicação. Ao chamar a macro a partir de outras macros, pode evitar duplicar o mesmo código em múltiplos locais.
-
No separador Criar, no grupo Macros e Código, clique em Macro.
O Access abre o Construtor de Macros. -
Na Barra de Ferramentas de Acesso Rápido, clique em Guardar.
-
Na caixa de diálogo Guardar Como, escreva o nome da macro e, em seguida, clique em OK.
-
Continue com a secção Adicionar ações a uma macro.
Criar uma macro incorporada
Este procedimento cria uma macro que está incorporada numa propriedade do evento de um objeto. Essa macro não aparece no Painel de Navegação, mas pode ser chamada a partir de eventos como Ao Carregar ou Ao Clicar.
Como a macro se torna parte do objeto do relatório ou formulário, as macros incorporadas são recomendadas para automatizar tarefas que são específicas para um determinado formulário ou relatório.
-
No Painel de Navegação, clique com o botão direito do rato no formulário ou relatório que conterá a macro e, em seguida, clique em Vista de Esquema.
-
Se a folha de propriedades ainda não estiver visível, prima F4 para a visualizar.
-
Clique no controlo ou secção que contém uma propriedade do evento em que pretende incorporar a macro. Também pode selecionar o controlo ou secção (ou o formulário ou relatório completo) ao utilizar a lista pendente em Tipo de Seleção na parte superior da folha de propriedades.
-
No painel de tarefas Folha de Propriedades, clique no separador Evento.
-
Clique na caixa de propriedade do evento em que pretende acionar a macro. Por exemplo, para um botão de comando, se quiser que a macro seja executada quando clica no botão, clique na caixa de propriedade Ao Clicar.
-
Se a caixa de propriedade contiver as palavras [Macro Incorporada], isto significa que já foi criada uma macro para este evento. Pode editar a macro ao continuar com os passos restantes neste procedimento.
-
Se a caixa de propriedade contiver as palavras [Procedimento de Evento], isto significa que já foi criado um procedimento VBA (Visual Basic for Applications) para este evento. Antes de poder incorporar uma macro no evento, terá de remover o procedimento. Pode fazê-lo ao eliminar as palavras [Procedimento de Evento], mas primeiro deve examinar o procedimento do evento para garantir que remover não irá interromper a funcionalidade necessária na base de dados. Em alguns casos, pode recriar a funcionalidade do procedimento VBA ao utilizar uma macro incorporada.
-
Clique no botão Criar .
-
Se a caixa de diálogo Escolher Construtor aparecer, certifique-se de que o Construtor de Macros está selecionado e, em seguida, clique em OK.
O Access abre o Construtor de Macros. Continue com a secção seguinte para adicionar ações à macro.
Adicionar ações a uma macro
As ações são os comandos individuais que constituem uma macro e cada uma é denominada de acordo com o que faz, por exemplo, LocalizarRegisto ou FecharBaseDeDados.
Passo 1: navegar ou procurar uma ação de macro
O primeiro passo ao adicionar uma ação é encontrá-la na lista pendente Adicionar Nova Ação ou no Catálogo de Ações.
Notas:
-
Por predefinição, a lista pendente Adicionar Nova Ação e o Catálogo de Ações só apresentam as ações que serão executadas em bases de dados que não são de confiança. Para ver todas as ações:
-
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Mostrar Todas as Ações.
-
-
Se o Catálogo de Ações não for apresentado, no separador Estrutura, no grupo Mostrar/Ocultar, clique em Catálogo de Ações.
Para encontrar uma ação, utilize um dos seguintes métodos:
-
Clique na seta na lista pendente Adicionar Nova Ação e desloque para baixo para encontrar a ação. Os elementos do fluxo de programa são listados primeiro e, em seguida, as ações de macro são listadas alfabeticamente.
-
Navegue para a ação no painel Catálogo de Ações. As ações são agrupadas por categoria. Expanda cada categoria para ver as ações. Se selecionar uma ação, aparecerá uma descrição breve da ação na parte inferior do Catálogo de Ações.
-
Procure a ação no painel Catálogo de Ações ao escrever na caixa de pesquisa na parte superior do painel. À medida que escreve, a lista de ações é filtrada para mostrar todas as macros que contêm esse texto. O Access procura os nomes da macro e as respetivas descrições para o texto que introduzir.
Passo 2: adicionar uma ação a uma macro
Assim que tiver encontrado a ação de macro pretendida, adicione-a à macro ao utilizar um destes métodos:
-
Selecione uma ação na lista Adicionar Nova Ação ou basta começar a escrever o nome da ação na caixa. O Access adiciona a ação no ponto onde a lista Adicionar Nova Ação foi apresentada.
-
Arraste a ação do Catálogo de Ações para o painel de macro. É apresentada uma barra de inserção para lhe mostrar onde a ação será inserida quando libertar o botão do rato.
-
Faça duplo clique na ação no Catálogo de Ações.
-
Se uma ação estiver selecionada no painel de macro, o Access adiciona a nova ação por baixo da selecionada.
-
Se um bloco Grupo, Se, Senão Se, Senão ou Submacro estiver selecionado no painel de macro, o Access adiciona a nova ação a esse bloco.
-
Se nenhuma ação ou bloco estiver selecionado no painel de macro, o Access adiciona a nova ação ao final da macro.
Notas:
-
Se já tiver criado uma ou mais macros, estas estarão listadas no nó Nesta Base de Dados no Catálogo de Ações.
-
Arrastar uma macro autónoma (uma que está listada em Macros) para o painel de macro cria uma ação ExecutarMacro que executa a macro que arrastou. Em seguida, pode utilizar a lista pendente para chamar submacros, se estiverem presentes.
-
Se apenas quiser copiar as ações da macro autónoma para a macro atual (em vez de criar uma ação ExecutarMacro), clique com o botão direito do rato no Catálogo de Ações e, em seguida, clique em Adicionar Cópia de Macro.
-
Arrastar uma macro incorporada (uma que está listada num objeto de formulário ou relatório) para o painel de macro copia as ações dessa macro para a macro atual.
-
-
Também pode criar uma ação ao arrastar um objeto de base de dados a partir do Painel de Navegação para o painel de macro. Se arrastar uma tabela, consulta, formulário, relatório ou módulo para o painel de macro, o Access adiciona uma ação que abre a tabela, a consulta, o formulário ou o relatório. Se arrastar outra macro para o painel de macro, o Access adiciona uma ação que executa a macro.
-
-
Passo 3: preencher os argumentos
A maioria das ações de macro exigem pelo menos um argumento. Pode ver uma descrição de cada argumento ao selecionar a ação e, em seguida, ao mover o ponteiro sobre os argumentos. Para vários argumentos, pode selecionar um valor de uma lista pendente. Se o argumento exigir que escreva uma expressão, o IntelliSense ajuda-o a introduzir a expressão ao sugerir valores possíveis à medida que escreve, conforme mostrado na ilustração seguinte:
Quando vir um valor que pretende utilizar, adicione-o à sua expressão ao fazer duplo clique ou utilize as teclas de seta para o realçar e, em seguida, prima a Tecla de Tabulação ou a tecla Enter.
Para obter mais informações sobre a criação de expressões, consulte o artigo Introdução às expressões.
Acerca de utilizar o IntelliSense com propriedades em bases de dados Web
Quando estiver a criar uma macro de IU incorporada num formulário compatível com a Web, o IntelliSense permite-lhe adicionar uma propriedade de formulário a uma expressão. No entanto, numa base de dados Web, um subconjunto de propriedades de formulário só pode ser acedido através de macros de IU. Por exemplo, tendo em conta um controlo denominado Controlo1 num formulário denominado Formulário1, o IntelliSense irá permitir-lhe adicionar [Formulários]![Formulário1]![Controlo1].[OrigemDoControlo] a uma expressão numa macro de IU. No entanto, se, em seguida, publicar a base de dados nos Serviços do Access, a macro que contém essa expressão irá gerar um erro quando for executada no servidor.
A seguinte tabela mostra as propriedades que pode utilizar nas macros de IU na base de dados Web:
Objeto ou controlo |
Propriedade que pode utilizar |
---|---|
Formulário |
Legenda, Modificado, PermitirAdições, PermitirEliminações, PermitirEdições |
Controlo de Separador |
Visível |
Etiqueta |
Legenda, Visível, Cor do Primeiro Plano, Cor do Fundo |
Anexo |
Visível, Ativado |
Botão de Comando |
Legenda, Visível, Ativado, Cor do Primeiro Plano |
Caixa de Texto |
Ativado, Visível, Bloqueado, Cor do Primeiro Plano, Cor do Fundo, Valor |
Caixa de Verificação |
Ativado, Visível, Bloqueado, Valor |
Imagem |
Visível, Imagem do Fundo |
Caixa de Combinação |
Ativado, Visível, Bloqueado, Valor |
Caixa de listagem |
Ativado, Visível, Bloqueado, Valor |
Browser |
Visível |
Subformulário |
Ativado, Visível, Bloqueado |
Controlo de Navegação |
Ativado, Visível |
Mover uma ação
As ações são executadas por ordem, desde o início até ao fim da macro. Para mover uma ação para cima e para baixo na macro, utilize um dos seguintes métodos:
-
Arraste a ação para cima ou para baixo, para onde quiser colocá-la.
-
Selecione a ação e, em seguida, prima Ctrl + Seta Para Cima ou Ctrl + Seta Para Baixo.
-
Selecione a ação e, em seguida, clique na seta Mover para Cima ou Mover para Baixo no lado direito do painel de macro.
Eliminar uma ação
Para eliminar uma ação de macro:
-
Selecione a ação e, em seguida, prima a tecla Delete. Em alternativa, pode clicar no botão Eliminar (X) no lado direito do painel de macro.
Notas:
-
Se eliminar um bloco de ações, como um bloco Se ou um bloco Grupo, todas as ações no bloco também são eliminadas.
-
Os comandos Mover para cima, Mover para baixo e Eliminar também estão disponíveis no menu de atalho que é apresentado quando clica com o botão direito do rato numa ação de macro.
-
Controlar o fluxo de programa com Se, Senão Se e Senão
Para executar ações de macro apenas quando determinadas condições são verdadeiras, utilize um bloco Se. Isto substitui a coluna Condição que foi utilizada em versões anteriores do Access. Pode expandir um bloco Se com blocos Senão Se e Senão, semelhantes a outras linguagens de programação sequenciais como VBA.
A seguinte ilustração mostra um bloco Se simples, incluindo os blocos Senão Se e Senão:
O bloco Se é executado se o campo DataExpiração for menor do que a data atual.
O bloco Senão Se é executado se o campo DataExpiração for igual à data atual.
O bloco Senão é executado se os blocos anteriores não forem executados.
O bloco Se termina aqui.
Adicionar um bloco Se a uma macro
-
Selecione Se a partir da lista pendente Adicionar Nova Ação ou arraste-o a partir do painel Catálogo de Ações para o painel de macro.
-
Na caixa na parte superior do bloco Se, escreva uma expressão que determina quando o bloco será executado. A expressão tem de ser Booleano (ou seja, uma que é avaliada para Sim ou Não).
-
Adicione ações ao bloco Se ao selecioná-las a partir da lista pendente Adicionar Nova Ação que é apresentada no bloco ou ao arrastá-las do painel Catálogo de Ações para o bloco Se.
Adicionar blocos Senão ou Senão Se a um bloco Se
-
Selecione o bloco Se e, em seguida, no canto inferior direito do bloco, clique em Adicionar Senão ou Adicionar Senão Se.
-
Se estiver a adicionar um bloco Senão Se, escreva uma expressão que determina quando o bloco será executado. A expressão tem de ser Booleano (ou seja, uma que é avaliada para Verdadeiro ou Falso).
-
Adicione ações ao bloco Senão Se ou Senão ao selecioná-las a partir da lista pendente Adicionar Nova Ação que é apresentada no bloco ou ao arrastá-las do painel Catálogo de Ações para o bloco.
Notas:
-
Os comandos Se, Senão Se e Senão estão disponíveis no menu de atalho que é apresentado quando clica com o botão direito do rato numa ação de macro.
-
Os blocos Se podem ser aninhados em até 10 níveis.
-
Criar submacros
Cada macro pode conter múltiplas submacros. Uma submacro é concebida para ser chamada pelo nome a partir das ações de macro ExecutarMacro ou AoOcorrerErro.
Um bloco Submacro é adicionado a uma macro da mesma forma que adiciona uma ação de macro, conforme descrito na secção Adicionar ações a uma macro. Assim que tiver adicionado um bloco Submacro, pode arrastar as ações de macro para o mesmo ou selecionar ações a partir da lista Adicionar Nova Ação que é apresentada no bloco.
Notas:
-
Também pode criar um bloco Submacro ao selecionar uma ou mais ações, ao clicar com o botão direito do rato nas mesmas e, em seguida, ao selecionar Transformar em Bloco de Submacro.
-
As submacros têm de ser sempre os últimos blocos numa macro; Não pode adicionar quaisquer ações (exceto mais submacros) abaixo de uma submacro. Se executar uma macro que contém apenas submacros sem nomear especificamente a submacro pretendida, apenas a primeira submacro será executada.
-
Para chamar uma submacro (por exemplo, numa propriedade de evento ou através da ação ExecutarMacro ou ação OnError ), utilize a seguinte sintaxe:
macroname.submacroname
Agrupar ações relacionadas
Pode melhorar a legibilidade de uma macro ao agrupar ações e ao atribuir um nome significativo ao grupo. Por exemplo, pode agrupar ações que abrem e filtram um formulário num grupo denominado "Abrir e filtrar formulário". Isto facilita ver que ações estão relacionadas entre si. Um bloco Grupo não afeta como as ações são executadas e o grupo não pode ser ligado ou executado individualmente. A sua utilização principal é para identificar um grupo de ações para o ajudar a compreender a macro à medida que a lê. Além disso, enquanto edita uma macro grande, pode fechar cada bloco de grupo para uma única linha, reduzindo a quantidade de deslocamento que tem de fazer.
Se as ações que pretende agrupar já estiverem na macro, utilize este procedimento para adicioná-las a um bloco Grupo:
-
Selecione as ações que pretende agrupar.
-
Clique com o botão direito do rato nas ações selecionadas e, em seguida, clique em Transformar em Bloco de Grupos.
-
Na caixa na parte superior do bloco Grupo, escreva um nome para o grupo.
Se as ações ainda não estiverem presentes:
-
Arraste o bloco Grupo do Catálogo de Ações para o painel de macro.
-
Na caixa na parte superior do bloco Grupo, escreva um nome para o grupo.
-
Arraste as ações de macro a partir do Catálogo de Ações para o bloco Grupo ou selecione ações a partir da lista Adicionar Nova Ação que é apresentada no bloco.
Os blocos Grupo podem conter outros blocos Grupo e podem ser aninhados até um máximo de 9 níveis.
Expandir e fechar blocos ou ações de macro
Quando cria uma nova macro, o construtor de macros apresenta ações de macro com todos os argumentos visíveis. Consoante o tamanho da macro, é recomendável fechar algumas ou todas as ações de macro (e blocos de ações) enquanto está a editar a macro. Isto facilita obter uma vista geral da estrutura da sua macro. Pode expandir algumas ou todas as ações conforme necessário para as editar.
Expandir ou fechar um único bloco ou ação de macro
-
Clique no sinal de adição (+) ou no sinal de subtração (-) à esquerda do nome da macro ou bloco. Em alternativa, prime as teclas Seta Para Cima e Seta Para Baixo para selecionar uma ação ou bloco e, em seguida, prima as teclas Seta Para a Esquerda ou Seta Para a Direita para fechar ou expandir.
Expandir ou fechar todas as ações de macro (mas não os blocos)
-
No separador Estrutura, no grupo Fechar/Expandir, clique em Expandir Ações ou Fechar Ações.
Expandir ou fechar todas os blocos e ações de macro
-
No separador Estrutura, no grupo Fechar/Expandir, clique em Expandir Tudo ou Fechar Tudo.
Sugestão: Pode ver a "pré-visualização" de uma ação fechada ao mover o ponteiro sobre a ação. O Access apresenta os argumentos de ação numa descrição.
Copiar e colar ações de macro
Se precisar de repetir ações que já adicionou a uma macro, pode copiar e colar as ações existentes, tal como faria com parágrafos de texto num processador de texto. Quando cola ações, estas são inseridas por baixo da ação atualmente selecionada. Se um bloco estiver selecionado, as ações serão coladas no bloco.
Sugestão: Para duplicar rapidamente as ações selecionadas, mantenha a tecla Ctrl premida e arraste as ações para a localização na macro para onde quer que sejam copiadas.
Partilhar uma macro com outras pessoas
Quando copia ações de macro para a área de transferência, estas podem ser coladas como linguagem XML (Extensible Markup Language) em qualquer aplicação que aceite texto. Isto permite-lhe enviar uma macro para um colega através de uma mensagem de e-mail ou publicar a macro num fórum de debate, blogue ou outro site. Em seguida, o destinatário pode copiar o XML e colá-lo no respetivo Construtor de Macros do Access. A macro é recriada tal como a escreveu.
Executar uma macro
Pode executar uma macro ao utilizar um dos seguintes métodos:
-
No Painel de Navegação, faça duplo clique na macro.
-
Chame a macro ao utilizar a ação de macro ExecutarMacro ou AoOcorrerErro.
-
Introduza o nome da macro numa propriedade do evento de um objeto. A macro será executada quando esse evento é acionado.
Depurar uma macro
Se estiver a ter problemas ao executar uma macro, existem algumas ferramentas que pode utilizar para chegar à origem do problema.
Adicionar ações de processamento de erros a uma macro
Recomendamos que adicione ações de processamento de erros a cada macro à medida que escreve e que as deixe na macro permanentemente. Quando utiliza este método, o Access apresenta descrições de erros à medida que ocorrem. As descrições de erro ajudam-no a compreender o erro para que possa corrigir o problema mais rapidamente.
Utilize o seguinte procedimento para adicionar uma submacro de processamento de erros a uma macro:
-
Abra a macro na Vista de Estrutura.
-
Na parte inferior da macro, selecione Submacro a partir da lista pendente Adicionar Nova Ação.
-
Na caixa, à direita da palavra Submacro, escreva um nome para a submacro, como ProcessadorErros.
-
A partir da lista pendente Adicionar Nova Ação que é apresentada no bloco Submacro, selecione a ação de macro CaixaDeMensagem.
-
Na caixa Mensagem, escreva o seguinte texto: =[ErroDeMacro].[Descrição]
-
Na parte inferior da macro, selecione AoOcorrerErro a partir da lista pendente Adicionar Nova Ação.
-
Defina o argumento Ir para para Nome da Macro.
-
Na caixa Nome da Macro, escreva o nome da sua submacro de processamento de erros (neste exemplo, ProcessadorErros).
-
Arraste a ação de macro AoOcorrerErro para a parte superior da macro.
A ilustração seguinte mostra uma macro com a ação AoOcorrerErro e uma Submacro com o nome ProcessadorErros.
A ação de macro AoOcorrerErro é colocada na parte superior da macro e chama a submacro ProcessadorErros no caso de um erro.
A submacro ProcessadorErros apenas é executada se for chamada pela ação AoOcorrerErro e apresenta uma caixa de mensagem que descreve o erro.
Utilizar o comando Passo a Passo
Passo a Passo é um modo de depuração de macro que pode utilizar para executar uma macro, uma ação de cada vez. Após cada ação ser efetuada, é apresentada uma caixa de diálogo que apresenta informações sobre a ação e os códigos de erro que ocorrem como resultado. No entanto, como não existe descrição do erro na caixa de diálogo Passo Individual, recomendamos utilizar o método de submacro de processamento de erros descrito na secção anterior.
Para iniciar o modo Passo a Passo:
-
Abra a macro na Vista de Estrutura.
-
No separador Estrutura, no grupo Ferramentas, clique em Passo a Passo.
-
Guarde e feche a macro.
Da próxima vez que executar a macro, a caixa de diálogo Passo Individual é apresentada. A caixa de diálogo apresenta as seguintes informações sobre cada ação:
-
Nome da macro
-
Condição (para blocos Se)
-
Nome da Ação
-
Argumentos
-
Número de Erro (um número de erro de 0 significa que não ocorreram erros)
À medida que percorre as ações, clique num dos três botões na caixa de diálogo:
-
Para ver informações sobre a ação seguinte na macro, prima Passo.
-
Para parar as macros que estão atualmente em execução, clique em Parar Todas as Macros. O modo Passo a Passo ainda estará em vigor da próxima vez que executar uma macro.
-
Para sair do modo Passo a Passo e continuar a executar a macro, clique em Continuar.
Notas:
-
Se premir Passo após a última ação numa macro, o modo Passo a Passo ainda estará em vigor da próxima vez que executar uma macro.
-
Para entrar no modo Passo a Passo enquanto uma macro está em execução, prima Ctrl + Break.
-
Para entrar no modo Passo a Passo num ponto específico numa macro, adicione a ação de macro PassoIndividual nesse ponto.
-
O modo Passo a Passo não está disponível numa base de dados Web.
-
Converter uma macro em código VBA
As macros fornecem um subconjunto dos comandos que estão disponíveis na linguagem de programação VBA (Visual Basic for Applications). Se decidir que precisa de mais funcionalidades do que as macros podem fornecer, pode converter facilmente um objeto de macro autónomo em código VBA e, em seguida, utilizar o conjunto de funcionalidades expandido fornecido pelo VBA. Tenha em atenção, no entanto, que o código VBA não será executado num browser; qualquer código VBA que adicionar a uma base de dados Web só será executado quando a base de dados estiver aberta no Access.
Nota: Não pode converter macros incorporadas em código VBA.
Para converter uma macro em código VBA:
-
No Painel de Navegação, clique com o botão direito do rato no objeto de macro e, em seguida, clique em Vista de Estrutura.
-
No separador Estrutura, no grupo Ferramentas, clique em Converter Macros para Visual Basic.
-
Na caixa de diálogo Converter a macro, especifique se quer adicionar comentários e código de processamento de erros ao módulo VBA e, em seguida, clique em Converter.
O Access confirma que a macro foi convertida e abre o Visual Basic Editor. Faça duplo clique na Macro Convertida no painel Projeto para ver e editar o módulo.