No Microsoft Access, as macros anexadas a 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-os das macros de dados, que estão anexadas a tabelas. Utiliza macros (IU) 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 construtor de macros recentemente redesenhado e mostra-lhe as tarefas básicas envolvidas na criação de uma macro de IU.
Observação: Este artigo não se aplica a aplicações Web do Access.
Neste artigo
Visão geral
As macros podem ser contidas em objetos de macro (por vezes denominadas macros autónomas) ou podem ser incorporadas nas propriedades de eventos 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; as macros incorporadas não são.
Cada macro é composta por uma ou mais ações de macro. Consoante o 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ónomo que será apresentado em Macros no Painel de Navegação. As macros autónomas são úteis quando pretende reutilizar a macro em muitos locais da aplicação. Ao chamar a macro de outras macros, pode evitar duplicar o mesmo código em vários locais.
-
Na guia 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 um nome para a 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 incorporada numa propriedade de 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.
Uma vez que a macro se torna parte do objeto de formulário ou relatório, as macros incorporadas são recomendadas para automatizar tarefas específicas de 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 irá conter a macro e, em seguida, clique em Vista de Esquema.
-
Se a Folha de Propriedades não for exibida, pressione F4 para exibi-la.
-
Clique no controlo ou secção que contém a propriedade do evento na qual pretende incorporar a macro. Também pode selecionar o controlo ou secção (ou todo o formulário ou relatório) 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 propriedades do evento que pretende acionar a macro. Por exemplo, para um botão de comando, se quiser que a macro seja executada quando o botão é clicado, clique na caixa de propriedade Ao Clicar .
-
Se a caixa de propriedades contiver as palavras [Macro Incorporada], 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 propriedades contiver as palavras [Procedimento de Evento], 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 a remoção não irá interromper a funcionalidade necessária na base de dados. Em alguns casos, pode recriar a funcionalidade do procedimento VBA com uma macro incorporada.
-
Clique no botão Criar .
-
Se for apresentada a caixa de diálogo Escolher Construtor , 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 compõem uma macro e cada um tem o nome de acordo com o que faz, por exemplo, LocalizarRegisto ou FecharBasedeDados.
Passo 1: Procurar ou procurar uma ação de macro
O primeiro passo para adicionar uma ação é encontrá-la na lista pendente Adicionar Nova Ação ou no Catálogo de Ações.
Observações:
-
Por predefinição, a lista pendente Adicionar Nova Ação e o Catálogo de Ações apenas apresentam as ações que serão executadas em bases de dados não fidedignas. 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 localizar uma ação, utilize um dos seguintes métodos:
-
Clique na seta na lista pendente Adicionar Nova Ação e desloque-se 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.
-
Procure 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, será apresentada uma breve descrição 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 Procurar 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 o texto introduzido nos nomes das macros e nas respetivas descrições.
Passo 2: adicionar uma ação a uma macro
Depois de encontrar a ação de macro pretendida, adicione-a à macro com um destes métodos:
-
Selecione uma ação na lista Adicionar Nova Ação ou comece a escrever o nome da ação na caixa. O Access adiciona a ação no ponto em que a lista Adicionar Nova Ação foi apresentada.
-
Arraste a ação do Catálogo de Ações para o painel de macros. Uma barra de inserção aparece para mostrar onde a ação será inserida quando você liberar o botão do mouse.
-
Clique duas vezes na ação no Catálogo de Ações.
-
Se uma ação for selecionada no painel de macros, o Access adicionará a nova ação logo abaixo da selecionada.
-
Se um bloco Group, If, Else If, Else ou Submacro for selecionado no painel macro, o Access adicionará a nova ação a esse bloco.
-
Se nenhuma ação ou bloco for selecionado no painel de macros, o Access adicionará a nova ação ao final da macro.
Observações:
-
Se você já criou uma ou mais macros, elas serão listadas no nó Neste Banco de Dados no Catálogo de Ações.
-
Arrastar uma macro autônoma (que está listada em Macros) para o painel de macro cria uma ação RunMacro que executa a macro que você arrastou. Em seguida, você pode usar a lista suspensa para chamar submacros, se estiver presente.
-
Se você quiser apenas copiar as ações de uma macro autônoma para a macro atual (em vez de criar uma ação RunMacro ), clique com o botão direito do mouse nele no Catálogo de Ações e clique em Adicionar Cópia da Macro.
-
Arrastar uma macro inserida (uma listada em um formulário ou objeto de relatório) para o painel de macro copia as ações dessa macro para a macro atual.
-
-
Você também pode criar uma ação arrastando um objeto de banco de dados do Painel de Navegação para o painel de macro. Se você arrastar uma tabela, consulta, formulário, relatório ou módulo para o painel de macro, o Access adicionará uma ação que abre a tabela, a consulta, o formulário ou o relatório. Se você arrastar outra macro para o painel de macro, o Access adicionará uma ação que executa a macro.
-
-
Etapa 3: preencher argumentos
A maioria das ações de macro exige pelo menos um argumento. Você pode exibir uma descrição de cada argumento selecionando a ação e movendo o ponteiro sobre os argumentos. Para muitos argumentos, você pode selecionar um valor em uma lista suspensa. Se o argumento exigir que você digite uma expressão, o IntelliSense ajudará você a inserir a expressão sugerindo valores possíveis à medida que digita, conforme mostrado na ilustração a seguir:
Quando você vir um valor que deseja usar, adicione-o à sua expressão clicando duas vezes nele ou usando as teclas de seta para realçá-lo e pressionando a tecla TAB ou ENTER.
Para obter mais informações sobre como criar expressões, consulte o artigo Introdução às expressões.
Sobre como usar o IntelliSense com propriedades em bancos de dados Web
Quando você está criando uma macro da interface do usuário inserida em um formulário compatível com a Web, o IntelliSense permite adicionar qualquer propriedade de formulário a uma expressão. No entanto, em um banco de dados Web, apenas um subconjunto de propriedades do formulário pode ser acessado usando macros de interface do usuário. Por exemplo, dado um controle chamado Control1 em um formulário chamado Form1, o IntelliSense permitirá que você adicione [Forms]! [Form1]! [Control1]. [ControlSource] para uma expressão em uma macro de interface do usuário. No entanto, se você publicar o banco de dados no Access Services, a macro que contém essa expressão gerará um erro quando ele for executado no servidor.
A tabela a seguir mostra as propriedades que você pode usar em macros de interface do usuário em bancos de dados Web:
Objeto ou controle |
Propriedades que você pode usar |
---|---|
Forma |
Legenda, Dirty, AllowAdditions, AllowDeletions, AllowEdits |
Controle tab |
Visible |
Rótulo |
Legenda, Visível, Cor do Fore, Cor de volta |
Anexo |
Visível, Habilitado |
Botão Comando |
Legenda, Visível, Habilitado, Cor do Fore |
Tex tBox |
Habilitado, visível, bloqueado, cor do fore, cor de volta, valor |
Caixa de seleção |
Habilitado, visível, bloqueado, valor |
Imagem |
Visível, Cor de Volta |
Caixa de combinação |
Habilitado, visível, bloqueado, valor |
Caixa de listagem |
Habilitado, visível, bloqueado, valor |
Navegador |
Visible |
Subformulário |
Habilitado, Visível Bloqueado |
Controle de Navegação |
Habilitado, Visível |
Mover uma ação
As ações são executadas em ordem, da parte superior à parte inferior da macro. Para mover uma ação para cima ou para baixo na macro, use um dos seguintes métodos:
-
Arraste a ação para cima ou para baixo até onde você deseja.
-
Selecione a ação e pressione CTRL + SETA PARA CIMA ou CTRL + SETA PARA BAIXO.
-
Selecione a ação e clique na seta Mover para cima ou Mover para baixo no lado direito do painel macro.
Excluir uma ação
Para excluir uma ação de macro:
-
Selecione a ação e pressione a tecla DELETE. Como alternativa, você pode clicar no botão Excluir (X) no lado direito do painel de macro.
Observações:
-
Se você excluir um bloco de ações, como um bloco If ou um bloco Group , todas as ações no bloco também serão excluídas.
-
Os comandos Mover para cima, Mover para baixo e Excluir também estão disponíveis no menu de atalho que aparece quando você clica com o botão direito do mouse em uma ação de macro.
-
Controlar o fluxo do programa com If, Else If e Else
Para executar ações de macro somente quando determinadas condições forem verdadeiras, você usará um bloco If . Isso substitui a coluna Condição usada em versões anteriores do Access. Você pode estender um bloco If com blocos Else If e Else , semelhante a outras linguagens de programação sequenciais como VBA.
A ilustração a seguir mostra um bloco Se simples, incluindo blocos Else If e Else :
O bloco Se for executado se o campo ExpirationDate for menor que a data atual.
O bloco Else If é executado se o campo ExpirationDate for igual à data atual.
O bloco Else será executado se nenhum dos blocos anteriores o fizer.
O bloco Se termina aqui.
Adicionar um bloco If a uma macro
-
Selecione Se na lista suspensa Adicionar Nova Ação ou arraste-a do painel Catálogo de Ações para o painel macro.
-
Na caixa na parte superior do bloco If , digite uma expressão que determina quando o bloco será executado. A expressão deve ser booliana (ou seja, uma que avalia como Sim ou Não).
-
Adicione ações ao bloco Se selecionando-as na lista suspensa Adicionar Nova Ação que aparece no bloco ou arrastando-as do painel Catálogo de Ações para o bloco Se .
Adicionar Else ou Else Se bloquear a um bloco If
-
Selecione o bloco Se e, em seguida, no canto inferior direito do bloco, clique em Adicionar Else ou Adicionar Else If.
-
Se você estiver adicionando um bloco Else If , digite uma expressão que determina quando o bloco será executado. A expressão deve ser booliana (ou seja, uma que avalia como True ou False).
-
Adicione ações ao bloco Else If ou Else selecionando-as na lista suspensa Adicionar Nova Ação que aparece no bloco ou arrastando-as do painel Catálogo de Ações para o bloco.
Observações:
-
Os comandos para adicionar blocos If, Else If e Else estão disponíveis no menu de atalho exibido quando você clica com o botão direito do mouse em uma ação de macro.
-
Se os blocos puderem ser aninhados até 10 níveis de profundidade.
-
Criar submacros
Cada macro pode conter vários submacros. Um submacro foi projetado para ser chamado pelo nome das ações de macro RunMacro ou OnError .
Você adiciona um bloco Submacro a uma macro da mesma forma que uma ação de macro, conforme descrito na seção Adicionar ações a uma macro. Depois de adicionar um bloco Submacro , você pode arrastar ações de macro para ele ou selecionar ações na lista Adicionar Nova Ação que aparece no bloco.
Observações:
-
Você também pode criar um bloco Submacro selecionando uma ou mais ações, clicando com o botão direito do mouse nelas e selecionando Fazer Bloco de Submacro.
-
Os submacros devem ser sempre os últimos blocos em uma macro; você não pode adicionar nenhuma ação (exceto mais submacros) abaixo de um submacro. Se você executar uma macro que contém apenas submacros sem nomear especificamente o submacro desejado, apenas o primeiro submacro será executado.
-
Para chamar um submacro (por exemplo, em uma propriedade de evento ou usando a ação RunMacro ou OnError ), use a seguinte sintaxe:
macroname.submacroname
Agrupar ações relacionadas
Você pode melhorar a legibilidade de uma macro agrupando ações e atribuindo um nome significativo ao grupo. Por exemplo, você pode agrupar ações que abrem e filtram um formulário em um grupo chamado "Abrir e filtrar formulário". Isso facilita a visualização de quais ações estão relacionadas entre si. Um bloco de grupo não afeta a forma como as ações são executadas e o grupo não pode ser chamado ou executado individualmente. Seu uso primário é para rotular um grupo de ações para ajudá-lo a entender a macro ao lê-la. Além disso, ao editar uma macro grande, você pode reduzir cada bloco de grupo para uma única linha, reduzindo a quantidade de rolagem que você precisa fazer.
Se as ações que você deseja agrupar já estiverem na macro, use este procedimento para adicioná-las a um bloco de grupo :
-
Selecione as ações que você deseja agrupar.
-
Clique com o botão direito do mouse nas ações selecionadas e clique em Fazer Bloco de Grupo.
-
Na caixa na parte superior do bloco Grupo , digite 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 , digite um nome para o grupo.
-
Arraste ações de macro do Catálogo de Ações para o bloco Grupo ou selecione ações na lista Adicionar Nova Ação exibida no bloco.
Os blocos de grupo podem conter outros blocos de grupo e podem ser aninhados até um máximo de 9 níveis de profundidade.
Expandir e recolher ações de macro ou blocos
Quando você cria uma nova macro, o construtor de macro exibe ações de macro com todos os argumentos visíveis. Dependendo do tamanho da macro, talvez você queira recolher algumas ou todas as ações macro (e blocos de ações) enquanto estiver editando a macro. Isso facilita a obtenção de uma visão geral da estrutura da macro. Você pode expandir algumas ou todas as ações conforme necessário para editá-las.
Expandir ou recolher uma única ação ou bloco de macro
-
Clique no sinal de adição (+) ou menos (-) à esquerda da macro ou nome do bloco. Como alternativa, pressione as teclas SETA PARA CIMA e SETA PARA BAIXO para selecionar uma ação ou bloqueio e pressione as teclas SETA ESQUERDA ou SETA DIREITA para desabar ou expandi-la.
Expandir ou recolher todas as ações de macro (mas não blocos)
-
Na guia Design , no grupo Desabar/Expandir , clique em Expandir Ações ou Ações de Colapso.
Expandir ou recolher todas as ações e blocos de macro
-
Na guia Design , no grupo Desabar/Expandir , clique em Expandir Tudo ou Recolher Tudo.
Dica: Você pode "espiar" dentro de uma ação recolhida movendo o ponteiro sobre a ação. O Access exibe os argumentos de ação em uma dica de ferramenta.
Copiar e colar ações de macro
Se você precisar repetir ações que já adicionou a uma macro, poderá copiar e colar as ações existentes da mesma forma que faria com parágrafos de texto em um processador de palavras. Quando você cola ações, elas são inseridas logo abaixo da ação selecionada no momento. Se um bloco for selecionado, as ações serão coladas dentro do bloco.
Dica: Para duplicar rapidamente as ações selecionadas, segure a tecla CTRL e arraste as ações para o local na macro em que você deseja que elas sejam copiadas.
Compartilhar uma macro com outras pessoas
Quando você copia ações de macro para a área de transferência, elas podem ser coladas como XML (Linguagem de Marcação Extensível) em qualquer aplicativo que aceite texto. Isso permite que você envie uma macro para um colega por meio de uma mensagem de email ou poste a macro em um fórum de discussão, blog ou outro site da Web. Em seguida, o destinatário pode copiar o XML e cole-o em seu Construtor de Macros de Acesso. A macro é recriada assim como você a escreveu.
Executar uma macro
Você pode executar uma macro usando qualquer um dos seguintes métodos:
-
Clique duas vezes na macro no Painel de Navegação.
-
Chame a macro usando a ação macro RunMacro ou OnError .
-
Insira o nome da macro em uma propriedade Event de um objeto. A macro será executada quando esse evento for disparado.
Depurar uma macro
Se você estiver tendo problemas para executar uma macro, há algumas ferramentas que você pode usar para chegar à origem do problema.
Adicionar ações de tratamento de erros a uma macro
Recomendamos adicionar ações de tratamento de erros a cada macro à medida que você a grava e deixá-las na macro permanentemente. Quando você usa esse método, o Access exibe descrições de erros conforme eles ocorrem. As descrições de erro ajudam você a entender o erro para que você possa corrigir o problema mais rapidamente.
Use o procedimento a seguir para adicionar um submacro de tratamento de erros a uma macro:
-
Abra a macro na exibição Design.
-
Na parte inferior da macro, selecione Submacro na lista suspensa Adicionar Nova Ação .
-
Na caixa à direita da palavra Submacro, digite um nome para o submacro, como ErrorHandler.
-
Na lista suspensa Adicionar Nova Ação que aparece no bloco Submacro , selecione a ação macro MessageBox .
-
Na caixa Mensagem , digite o seguinte texto: =[MacroError].[ Descrição]
-
Na parte inferior da macro, selecione OnError na lista suspensa Adicionar Nova Ação .
-
Defina o argumento Ir comoNome da Macro.
-
Na caixa Nome da Macro , digite o nome do submacro de tratamento de erros (neste exemplo, ErrorHandler).
-
Arraste a ação de macro OnError até a parte superior da macro.
A ilustração a seguir mostra uma macro com a ação OnError e um Submacro chamado ErrorHandler.
A ação de macro OnError é colocada na parte superior da macro e chama o submacro ErrorHandler no caso de um erro.
O submacro ErrorHandler só será executado se for chamado pela ação OnError e exibir uma caixa de mensagem que descreve o erro.
Usar o comando Etapa Única
A Etapa Única é um modo de depuração de macro que você pode usar para executar uma ação de macro uma por vez. Depois que cada ação é executada, uma caixa de diálogo é exibida que exibe informações sobre a ação e quaisquer códigos de erro que ocorreram como resultado. No entanto, como não há nenhuma descrição do erro na caixa de diálogo Etapa Única da Macro, recomendamos usar o método de submacro de tratamento de erros descrito na seção anterior.
Para iniciar o modo de Etapa Única:
-
Abra a macro na exibição Design.
-
Na guia Design , no grupo Ferramentas , clique em Etapa Única.
-
Salve e feche a macro.
Na próxima vez que você executar a macro, a caixa de diálogo Etapa Única da Macro será exibida. A caixa de diálogo exibe as seguintes informações sobre cada ação:
-
Nome da macro
-
Condição (para blocos if)
-
Nome da ação
-
Argumentos
-
Número de erro (um número de erro de 0 significa que nenhum erro ocorreu)
Ao percorrer as ações, clique em um dos três botões na caixa de diálogo:
-
Para ver informações sobre a próxima ação na macro, pressione Etapa.
-
Para interromper todas as macros que estão em execução no momento, clique em Parar Todas as Macros. O modo De etapa única ainda estará em vigor na próxima vez que você executar uma macro.
-
Para sair do modo de Etapa Única e continuar executando a macro, clique em Continuar.
Observações:
-
Se você pressionar Etapa após a última ação em uma macro, o modo De etapa única ainda estará em vigor na próxima vez que você executar uma macro.
-
Para inserir o modo de Etapa Única enquanto uma macro está em execução, pressione CTRL+BREAK.
-
Para inserir o modo de Etapa Única em um ponto específico em uma macro, adicione a ação de macro SingleStep nesse ponto.
-
O modo De etapa única não está disponível em um banco 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 do Visual Basic for Applications (VBA). Se você decidir que precisa de mais funcionalidade do que as macros podem fornecer, você pode converter facilmente um objeto macro autônomo em código VBA e, em seguida, fazer uso do conjunto de recursos expandido que o VBA fornece. Tenha em mente, no entanto, que o código VBA não será executado em um navegador; qualquer código VBA que você adicionar a um banco de dados Web só será executado quando o banco de dados estiver aberto no Access.
Observação: Você não pode converter macros inseridas em código VBA.
Para converter uma macro em código VBA:
-
No Painel de Navegação, clique com o botão direito do mouse no objeto macro e clique na exibição Design.
-
Na guia Design , no grupo Ferramentas , clique em Converter Macros no Visual Basic.
-
Na caixa de diálogo Converter macro , especifique se pretende que o código de processamento de erros e os comentários sejam adicionados 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.