Criar uma macro de interface do usuário

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

No Microsoft Access, as macros anexadas a objetos de interface do usuário, como botões de comando, caixas de texto, formulários e relatórios, são conhecidas como macros de interface do usuário. Isso as distingue das macros de dados, que são anexadas a tabelas. Você usa macros (UI) 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 o construtor de macros recém-reprojetado e mostra as tarefas básicas envolvidas na criação de uma macro de interface do usuário.

Observação

Este artigo não é válido para os aplicativos Web do Access.

Neste artigo

Visão Geral

As macros podem estar contidas em objetos de macro (às vezes chamadas de macros autônomas) ou podem ser incorporadas às propriedades de evento de formulários, relatórios ou controles. As macros inseridas tornam-se parte do objeto ou controle no qual estão inseridas. Os objetos de macro são visíveis no Painel de Navegação, em Macros; As macros inseridas não são.

Cada macro é composta por uma ou mais ações de macro. Dependendo do contexto em que você está trabalhando, algumas ações de macro podem não estar disponíveis para uso.

Início da Página

Construtor de Macros

Aqui estão alguns dos principais destaques do Construtor de Macros.

  • Catálogo de Ações As ações de macro são organizadas por tipo e pesquisáveis.
  • IntelliSense Ao digitar expressões, o IntelliSense sugere possíveis valores e permite que você selecione o correto.
  • Atalhos de teclado Use combinações de teclas para escrever macros com mais rapidez e facilidade.
  • Fluxo do programa Crie macros mais legíveis com linhas de comentário e grupos de ações.
  • Instruções condicionais Permitir a execução de lógica mais complexa com suporte para aninhamento If/Else/Else If.
  • Reutilização de macro O Catálogo de ações exibe outras macros que você criou, permitindo copiá-las para a macro em que está trabalhando.
  • Compartilhamento mais fácil Copie uma macro e cole-a como XML em um email, postagem em grupo de notícias, blog ou site de amostra de código.

Aqui está um vídeo que o orienta pelas principais áreas do Construtor de Macros.

Início da Página

Criar uma macro autônoma

Este procedimento cria um objeto de macro autônomo que aparecerá em Macros no Painel de Navegação. As macros autônomas são úteis quando você deseja reutilizar a macro em muitos locais do aplicativo. Chamando a macro de outras macros, você pode evitar a duplicação do mesmo código em vários locais.

  1. Na guia Criar, no grupo Macros e Código, clique em Macro.

    O Access abre o Construtor de Macros.

  2. Na Barra de Ferramentas de Acesso Rápido, clique em Salvar.

  3. Na caixa de diálogo Salvar como , digite um nome para a macro e clique em OK.

  4. Continue com a seção Adicionar ações a uma macro.

Início da Página

Criar uma macro inserida

Esse procedimento cria uma macro que é incorporada em uma 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.

Como a macro se torna parte do objeto de formulário ou relatório, as macros inseridas são recomendadas para automatizar tarefas específicas de um formulário ou relatório específico.

  1. No Painel de Navegação, clique com o botão direito do mouse no formulário ou relatório que conterá a macro e clique em Modo Layout.

  2. Se a Folha de Propriedades não for exibida, pressione F4 para exibi-la.

  3. Clique no controle ou seção que contém a propriedade de evento na qual você deseja incorporar a macro. Você também pode selecionar o controle ou a seção (ou o formulário ou relatório inteiro) usando a lista suspensa em Tipo de Seleção na parte superior da folha de propriedades.

  4. No painel de tarefas Folha de Propriedades, clique na guia Evento .

  5. Clique na caixa de propriedade do evento em que deseja disparar a macro. Por exemplo, para um botão de comando, se você quiser que a macro seja executada quando o botão for clicado, clique na caixa de propriedade Ao clicar .

  6. Se a caixa de propriedade contiver as palavras [Embedded Macro], isso significa que uma macro já foi criada para esse evento. Você pode editar a macro continuando com as etapas restantes neste procedimento.

  7. Se a caixa de propriedade contiver as palavras [Event Procedure], isso significa que um procedimento do Visual Basic for Applications (VBA) já foi criado para esse evento. Antes de inserir uma macro no evento, você precisará remover o procedimento. Você pode fazer isso excluindo as palavras [Procedimento de Evento], mas primeiro examine o procedimento de evento para garantir que removê-lo não interrompa a funcionalidade necessária no banco de dados. Em alguns casos, você pode recriar a funcionalidade do procedimento VBA usando uma macro inserida.

  8. Clique no botão Construir Imagem do botão .

  9. Se a caixa de diálogo Escolher Construtor for exibida, verifique se Construtor de Macros está selecionado e clique em OK.

    O Access abre o Construtor de Macros. Continue com a próxima seção para adicionar ações à macro.

Início da Página

Adicionar ações a uma macro

Ações são os comandos individuais que compõem uma macro e cada um é nomeado de acordo com o que faz, por exemplo, FindRecord ou CloseDatabase.

Etapa 1: procurar ou pesquisar uma ação de macro

A primeira etapa para adicionar uma ação é localizá-la na lista suspensa Adicionar Nova Ação ou no Catálogo de Ações.

Observação

  • Por padrão, a lista suspensa Adicionar Nova Ação e o Catálogo de Ações exibem apenas as ações que serão executadas em bancos de dados não confiáveis. Para visualizar todas as ações:

    • Na guia Design , no grupo Mostrar/Ocultar , clique em Mostrar Todas as Ações.
  • Se o Catálogo de Ações não for exibido, na guia Design , no grupo Mostrar/Ocultar , clique em Catálogo de Ações.

Para localizar uma ação, use um dos seguintes métodos:

  • Clique na seta na lista suspensa Adicionar Nova Ação e role para baixo para localizar a ação. Os elementos do fluxo do programa são listados primeiro e, em seguida, as ações da macro são listadas em ordem alfabética.
  • Procure a ação no painel Catálogo de Ações. As ações são agrupadas por categoria. Expanda cada categoria para exibir as ações. Se você selecionar uma ação, uma breve descrição da ação será exibida na parte inferior do Catálogo de Ações.
  • Pesquise a ação no painel Catálogo de Ações digitando na caixa de pesquisa na parte superior do painel. À medida que você digita, a lista de ações é filtrada para mostrar todas as macros que contêm esse texto. O Access pesquisa os nomes das macros e suas descrições para o texto inserido.

Etapa 2: Adicionar uma ação a uma macro

Depois de encontrar a ação de macro desejada, adicione-a à macro usando um destes métodos:

  • Selecione uma ação na lista Adicionar Nova Ação ou apenas comece a digitar o nome da ação na caixa. O Access adiciona a ação no ponto em que a lista Adicionar Nova Ação foi exibida.

  • 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ê soltar 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 Grupo, Se, Senão, Se, Senão ou Submacro estiver selecionado no painel de macros, o Access adicionará a nova ação a esse bloco.

    • Se nenhuma ação ou bloco estiver selecionado no painel de macros, o Access adicionará a nova ação ao final da macro.

      Observação

      • Se você já tiver criado 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 (listada em Macros) para o painel de macros cria uma ação RunMacro que executa a macro arrastada. Em seguida, você pode usar a lista suspensa para chamar submacros, se presentes.
        • 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 no Catálogo de Ações e clique em Adicionar Cópia da Macro.
        • Arrastar uma macro incorporada (uma que esteja listada em um objeto de formulário ou relatório) para o painel de macros 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 macros. Se você arrastar uma tabela, consulta, formulário, relatório ou módulo para o painel de macros, o Access adicionará uma ação que abrirá a tabela, a consulta, o formulário ou o relatório. Se você arrastar outra macro para o painel de macros, o Access adicionará uma ação que executa a macro.

Etapa 3: preencher argumentos

A maioria das ações de macro requer 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 o ajudará a inserir a expressão sugerindo valores possíveis à medida que você digita, conforme mostrado na ilustração a seguir:

Usando o IntelliSense para inserir uma expressão

Quando vir um valor que você deseja usar, adicione-o à sua expressão clicando duas vezes nele ou usando as teclas de direção 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 a expressões.

Sobre o uso do IntelliSense com propriedades em bancos de dados da Web

Ao criar uma macro de 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 da Web, apenas um subconjunto de propriedades de 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 nos Serviços do Access, a macro que contém essa expressão gerará um erro quando for executada no servidor.

A tabela a seguir mostra as propriedades que você pode usar em macros de interface do usuário em bancos de dados da Web:

Objeto ou controle Propriedades que você pode usar
Forma Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits
Controle Guia Visible
Rótulo Legenda, Visível, Cor da frente, Cor do verso
Anexo Visível, Habilitado
Botão de comando Legenda, Visível, Habilitada, Cor frontal
Tex tBox Habilitado, Visível, Bloqueado, Cor da frente, Cor da parte de trás, valor
Caixa de seleção Habilitado, Visível, Bloqueado, Valor
Imagem Visível, cor do verso
Caixa de combinação Habilitado, Visível, Bloqueado, Valor
Caixa de listagem Habilitado, Visível, Bloqueado, Valor
Navegador da Web 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 para a 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é o local desejado.
  • 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 de macros.

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 macros.

    Observação

    • Se você excluir um bloco de ações, como um bloco Ifou 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.

Início da Página

Controlar o fluxo do programa com If, Else If e Else

Para executar ações de macro somente quando certas condições são verdadeiras, você usa um bloco Se . 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 , semelhantes a outras linguagens de programação sequenciais, como VBA.

A ilustração a seguir mostra um bloco If simples, incluindo blocos Else If e Else :

Uma macro que contém uma instrução If/Else If/Else.

O bloco Se é executado se o campo DataDeExpiração 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 If termina aqui.

Adicionar um bloco Se a uma macro

  1. Selecione Se na lista suspensa Adicionar Nova Ação ou arraste-a do painel Catálogo de Ações para o painel de macros.
  2. 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 seja avaliada como Sim ou Não).
  3. Adicione ações ao bloco Se selecionando-as na lista suspensa Adicionar Nova Ação que aparece dentro do bloco ou arrastando-as do painel Catálogo de Ações para o bloco If .

Adicionar blocos Else ou Else If a um bloco If

  1. Selecione oSebloco e, no canto inferior direito do bloco, clique emAdicionar outra coisa ou Adicionar outra se.

  2. Se você estiver adicionando um bloco Else IF , digite uma expressão que determine quando o bloco será executado. A expressão deve ser booliana (ou seja, avaliada como Verdadeira ou Falsa).

  3. Adicione ações ao bloco Else If ou Else selecionando-as na lista suspensa Adicionar Nova Ação que aparece dentro do bloco ou arrastando-as do painel Catálogo de Ações para o bloco.

    Observação

    • Os comandos para adicionar blocos If, Else If e Else 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.
    • Se os blocos podem ser aninhados até 10 níveis de profundidade.

Início da Página

Criar submacros

Cada macro pode conter várias submacros. Uma submacro é projetada para ser chamada pelo nome das ações de macro RunMacro ou OnError .

Você adiciona um bloco de 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 dentro do bloco.

Observação

  • Você também pode criar um bloco de submacro selecionando uma ou mais ações, clicando com o botão direito do mouse nelas e, em seguida, selecionando Criar bloco de submacro.

  • As submacros devem ser sempre os últimos blocos de uma macro; Você não pode adicionar nenhuma ação (exceto mais submacros) abaixo de uma submacro. Se executar uma macro que contenha apenas submacros sem atribuir um nome específico à submacro pretendida, apenas a primeira submacro será executada.

  • Para chamar uma submacro (por exemplo, numa propriedade do evento ou utilizando a ação ExecutarMacro ou AoOcorrerErro), utilize a seguinte sintaxe:

    nomemacro.subnomemacro

Início da Página

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 chamado 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:

  1. Selecione as ações que pretende agrupar.
  2. Clique com o botão direito do rato nas ações selecionadas e, em seguida, clique em Transformar em Bloco de Grupo.
  3. Na caixa na parte superior do bloco Grupo , escreva um nome para o grupo.

Se as ações ainda não estiverem presentes:

  1. Arraste o bloco Grupo do Catálogo de Ações para o painel de macro.
  2. Na caixa na parte superior do bloco Grupo , escreva um nome para o grupo.
  3. Arraste as ações de macro do Catálogo de Ações para o bloco Grupo ou selecione ações da lista Adicionar Nova Ação que aparece no bloco.

Os blocos de Grupo podem conter outros blocos de Grupo e podem ser aninhados até um máximo de 9 níveis.

Início da Página

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 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)

  • Na guia Design, 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.

Dica

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.

Início da Página

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.

Dica

Para duplicar rapidamente ações selecionadas, mantenha premida a tecla Ctrl e arraste a(s) ação(ões) para a localização na macro onde pretende 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 a linguagem XML e colá-la no seu 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:

  • Faça duplo clique na macro no Painel de Navegação.
  • Chame a macro utilizando 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.

Início da Página

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:

  1. Abra a macro na Vista de Estrutura.
  2. Na parte inferior da macro, selecione Submacro na lista suspensa Adicionar Nova Ação .
  3. Na caixa, à direita da palavra Submacro, escreva um nome para a submacro, como ProcessadorErros.
  4. Na lista suspensa Adicionar Nova Ação que aparece no bloco Submacro , selecione a ação de macro CaixaDeMensagem .
  5. Na caixa Mensagem , escreva o seguinte texto: =[ErroDeMacro].[ Descrição]
  6. Na parte inferior da macro, selecione AoOcorrerErro na lista suspensa Adicionar Nova Ação .
  7. Defina o argumento Ir para como Nome da Macro.
  8. Na caixa Nome da macro , escreva o nome da sua submacro de processamento de erros (neste exemplo, ProcessadorErros).
  9. Arraste a ação de macro AoOcorrerErro para a parte superior da macro.

A seguinte ilustração mostra uma macro com a ação AoOcorrerErro e uma Submacro com o nome ProcessadorErros.

Uma macro que contém uma submacro de tratamento de erro

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 só é 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:

  1. Abra a macro na Vista de Estrutura.
  2. No separador Estrutura , no grupo Ferramentas , clique em Passo a Passo.
  3. Salve 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 próxima ação na macro, prima o 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.

    Observação

    • 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.

Início da Página

Converter uma macro em código VBA

As macros fornecem um subconjunto dos comandos disponíveis na linguagem de programação Visual Basic for Applications (VBA). Se você decidir que precisa de mais funcionalidade do que as macros podem fornecer, poderá converter facilmente um objeto de macro autônomo em código VBA e, em seguida, usar o conjunto de recursos expandido que o VBA fornece. Lembre-se, no entanto, de que o código VBA não será executado em um navegador; qualquer código VBA que você adicionar a um banco de dados da Web só será executado quando o banco de dados for aberto no Access.

Observação

Não é possível converter macros inseridas em código VBA.

Para converter uma macro em código VBA:

  1. No Painel de Navegação, clique com o botão direito do mouse no objeto de macro e clique no modo Design.
  2. Na guia Design , no grupo Ferramentas , clique em Converter Macros em Visual Basic.
  3. Na caixa de diálogo Converter macro , especifique se deseja que o código de tratamento de erros e os comentários sejam adicionados ao módulo VBA e clique em Converter.

O Access confirma que a macro foi convertida e abre o Editor do Visual Basic. Clique duas vezes na macro convertida no painel Projeto para exibir e editar o módulo.

Início da Página