Como executar uma macro no Excel

Embora a execução de uma macro no Excel não seja difícil, existem muitas maneiras de executá-la. Algumas maneiras têm o objetivo de tornar o uso de macros mais fácil, enquanto outras podem alterar totalmente a maneira como um usuário interage com sua pasta de trabalho. Neste artigo, cobriremos algumas maneiras óbvias de executar macros, como a Lista de Macros e os controles de botão, e algumas maneiras mais obscuras, como o Editor VB e Eventos.

Primeiro: certifique-se de que as macros estejam ativadas

Os recursos de segurança do Excel desabilitarão as macros por padrão. Ao abrir uma pasta de trabalho habilitada para macro, os usuários normalmente são questionados se desejam habilitar macros.

Se você não conseguir executar macros, tente seguir estas instruções:

  • Salve a pasta de trabalho
  • Feche a pasta de trabalho e abra-a novamente
  • Quando a pasta de trabalho for carregada, você verá um Aviso de segurança prompt (foto abaixo). Clique Habilitar Conteúdo.

Execute uma macro a partir da lista de macros

Uma lista de macros pode ser acessada na guia Exibir. Para ver esta lista:

  • Selecione os Visualizar aba
  • Clique no botão rotulado Macros para abrir a lista de macros

  • Selecione a macro que deseja executar na lista e clique no botão Corre botão

Você também pode mostrar a Lista de macros a qualquer momento pressionando ALT + F8.

Executar uma macro usando um atalho de teclado

Você pode atribuir um atalho de teclado a uma macro que usa com freqüência, na forma de CTRL + ou CTRL + SHIFT +. Para fazer isso:

  • Abra a lista de macros (Visualizar > Macrosou ALT + F8)
  • Selecione a macro à qual deseja aplicar um atalho
  • Clique Opções… para mostrar o Opções de macro sub-diálogo

  • Na caixa de texto em Tecla de atalho, digite uma única letra e clique em OK. Se você segurar a tecla SHIFT enquanto digita a letra, o rótulo ao lado da caixa mostrará SHIFT como parte do atalho

NOTA: é altamente recomendável que você use SHIFT ao criar uma tecla de atalho! O Excel usa atalhos CTRL + para si mesmo, por exemplo, CTRL + C para copiar ou CTRL + V para salvar. Se você criar um atalho de macro usando esses ou outros atalhos do Excel, você substituirá o atalho do Excel até reatribuir o atalho da macro.

Execute uma macro a partir do Editor VB

As macros também podem ser executadas a partir do Editor VB. O Editor VB permite que você revise o código de uma macro e faça as alterações desejadas antes de executá-lo.

Para executar uma macro no Editor VB:

  • Abra o Editor VB (guia Desenvolvedor> Visual Basic ou ALT + F11)

  • No Projeto janela, clique duas vezes no módulo que contém a macro que deseja testar
  • Na janela de código do módulo, coloque o cursor em qualquer lugar no código da macro entre “Sub” e “End Sub”
  • Clique no Corre botão na barra de ferramentas ou pressione o atalho de teclado F5

Execute uma macro usando um botão ou forma

Muitas vezes é útil ter um controle na planilha em que um usuário pode clicar para executar uma macro, como um controle de botão ou uma forma. Isso é muito mais rápido para os usuários finais do que abrir listas de macros ou vasculhar o código de macro no Editor VB.

Informações sobre como criar um botão ou forma clicável podem ser encontradas aqui: Adicionar um botão e atribuir uma macro no Excel.

Executar uma macro automaticamente usando eventos em VBA

É possível fazer uma macro ser executada quando algo acontece no Excel - por exemplo, quando uma pasta de trabalho é aberta ou quando um valor de célula é alterado. Estes são chamados Eventos, e você pode escrever código VBA para eles chamarem macros ou realizarem outras operações.

Para escrever o código para um evento, você precisará usar o Editor VB. Por exemplo, para visualizar eventos para a pasta de trabalho:

  • Abra o Editor VB (ALT + F11)
  • Clique duas vezes no ThisWorkbook objeto no Editor VB Janela de Projeto
  • Escolha “Workbook” no menu suspenso no canto superior esquerdo da janela de código
  • Clique na lista suspensa à direita para ver uma lista de eventos

A seguir, um pequeno, mas útil exemplo de Eventos do Excel a partir dos quais você pode executar macros.

Workbook_Open ()

O evento Workbook_Open () é disparado quando uma pasta de trabalho é aberta. Se você receber o Aviso de segurança após abrir uma pasta de trabalho, este evento dispara após clicar em “Ativar conteúdo”.

12345 Sub Workbook_Open ()MsgBox "Workbook Opened!"End Sub

Workbook_BeforeClose (Cancelar como Booleano)

Workbook_BeforeClose () é acionado quando o usuário tenta fechar a pasta de trabalho. Isso acontece antes de qualquer verificação ser feita para ver se a pasta de trabalho precisa ser salva.

o Cancelar O parâmetro pode ser definido como True para interromper o fechamento da pasta de trabalho.

123456789 Private Sub Workbook_BeforeClose (Cancelar como Booleano)If MsgBox ("Tem certeza?", VbYesNo + vbQuestion, "Close") = vbNo ThenCancelar = VerdadeiroFim seEnd Sub

Worksheet_Change (ByVal Target As Range)

Worksheet_Change () é acionado quando o valor de uma célula é alterado - seja por uma macro, por uma operação de copiar / colar ou por um link externo. No entanto, ele não dispara quando um valor é recalculado por meio de uma fórmula.

o Alvo parâmetro representa as células cujo valor foi alterado.

Se você alterar o valor de outras células dentro desse evento, o evento será disparado novamente. Isso pode causar um loop infinito. Se você precisar alterar os valores das células sem acionar este evento, considere definir Application.EnableEvents para Falso primeiro e, em seguida, defina-o de volta para Verdade no final do procedimento do evento.

123456789 Sub-planilha privada_Change (ByVal Target As Range)MsgBox "Células alteradas:" & Target.AddressApplication.EnableEvents = FalseIntervalo ("A2"). Valor = Intervalo ("A2"). Valor + Alvo.Células.ContagemApplication.EnableEvents = TrueEnd Sub

Worksheet_SelectionChange (ByVal Target As Range)

Este evento é disparado sempre que células diferentes são selecionadas com o retículo de segmentação. O parâmetro Destino representa as novas células que foram selecionadas.

Você também pode acionar este evento com o código, ou seja, “Intervalo (“ A1 ”). Selecione”. Assim como com Worksheet_Change (), você deve ter cuidado ao selecionar outras células dentro deste evento, pois você pode causar um loop infinito. Use Application.EnableEvents.

123456789 Private Sub Worksheet_SelectionChange (ByVal Target As Range)Se Target.Address = "$ A $ 1" EntãoMsgBox "Cursor na posição inicial."Fim seEnd Sub

Parar uma macro em execução

Uma macro em execução pode ser interrompida pressionando ESC ou CTRL + BREAK. Por padrão, uma macro interrompida mostrará a seguinte caixa de diálogo:

Clicando Fim irá parar a macro, enquanto Prosseguir irá retomá-lo. Clicando Depurar irá abrir a macro no Editor VB e focar a linha de código em que a execução foi pausada. (Dentro do Editor VB, você pode parar ou retomar a macro usando os botões Executar ou Terminar na barra de ferramentas.)

Application.EnableCancelKey

Você pode desativar a capacidade de interromper uma macro com ESC ou CTRL + BREAK, definindo o Application.EnableCancelKey propriedade. Esta propriedade possui três valores possíveis:

  • xlInterrupção - este é o valor padrão, o que faz o Excel mostrar a caixa de diálogo acima
  • xlDisabled - remove a capacidade de interromper uma macro em execução
  • xlErrorHandler - quando uma tentativa de interrupção é feita, um erro é lançado e pode ser tratado no código

Sempre que a execução do código é interrompida, o Excel sempre redefine o valor de Application.EnableCancelKey de volta para xlInterrupção.

Um bom motivo para usar essa propriedade é a segurança. Por exemplo, se você tivesse uma macro que desprotegesse temporariamente partes de sua pasta de trabalho, um usuário poderia interromper a macro logo após a desproteger e obter acesso ao conteúdo que você não pretendia que eles tivessem. Ao definir Application.EnableCancelKey, você pode desabilitar completamente sua capacidade de fazer isso ou lidar com sua interrupção normalmente com um manipulador de erros que protege novamente a pasta de trabalho.

1234567891011 Sub UpdateBaseData (ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy TargetTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptEnd Sub

Forçar o fechamento do Excel com o gerenciador de tarefas do Windows

Se a macro 'travou', ou o Excel ficou muito ocupado para reconhecer uma tentativa de interrupção, você pode precisar forçar o fechamento do Excel com o gestor de tarefas do Windows. (NOTA: se você fizer isso, poderá perder qualquer trabalho não salvo e terá que contar com uma versão de recuperação automática de sua pasta de trabalho.)

  • Abra o gerenciador de tarefas diretamente usando CTRL + SHIFT + ESC
  • Selecione os "Processos" aba
  • Expanda o item “Microsoft Excel” para mostrar todas as pastas de trabalho
  • Selecione a pasta de trabalho que deseja fechar e clique em Finalizar tarefa no canto inferior direito

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave