VBA Eventos


Evento é uma ação (geralmente realizada pelo usuário) que dispara códigos a serem executados pelo VBA.

Ex: Abrir uma planilha, selecionar uma aba, mudar o valor de células, etc.

Para criarmos códigos que executam quando um evento ocorre:

  1. Acesse o VBE na parte do Project Explorer
  2. Clique duas vezes em EstaPastaDeTrabalho ou Planilha1
  3. Acesse o primeiro dropdown (local) que aparecerá na esquerda e selecione um item
  4. Acesse o segundo dropdown (evento) que aparecerá na direita e selecione uma ação que disparará o evento
Criar VBA Evento

Project Explorer do VBE, por padrão, já possui os itens: EstaPastaDeTrabalho e Planilha1. Porém, outros itens poderão ser listados nesta janela, como novas Planilhas ou mesmo outros projetos (se mais de uma pasta de trabalho estiver aberta).

Os eventos relacionados a pasta de trabalho (WorkBook) devem ser inseridos em EstaPastaDeTrabalho. Já os eventos relacionados as Planilhas (WorkSheet) devem estar localizados no item da planilha correspondente (Ex: Planilha1).


Primeiro VBA com Eventos

Selecione no Project Explorer do VBE o local se deseja criar uma macro para um evento, como descrito anteriormente, e em seguida selecione qual evento se deseja utilizar.

No caso, utilizaremos o evento de abertura da pasta de trabalho (Open).

Opções de Eventos
  1. No item EstaPastaDeTrabalho do trabalho do VBE (em Project Explorer), adicione o seguinte código:
    Private Sub Workbook_Open()
    
        MsgBox "Última atualização em: 10 de Agosto"
    
    End Sub
    

    2. Salve (na extensão .xlsm ), feche e abra a pasta de trabalho (arquivo Excel) para receber a mensagem.

Exemplo de Evento

Eventos são ativados a partir de nomes de Sub específicos. Tenha como boa prática não associar variáveis a esses nomes.

Ao clicar em item do dropdown da direita, uma Sub é criada automaticamente com o nome do local e do evento desejado conectados com underline (_).

Mudar Evento VBA

Padrão de Sub de evento: [local]_[evento].

  Sub WorkBook_Open
  '"WorkBook" é o local e "Open" é o evento
  End Sub

Principais Eventos da Pasta de Trabalho

Alguns eventos comuns da pasta de trabalho (EstaPastaDeTrabalho):

Evento Descrição
Workbook_Open Executa a instrução quando a pasta de trabalho é ou está aberta
Workbook_BeforeClose Executa a instrução imediatamente antes da pasta de trabalho ser fechada
Workbook_BeforeSave Executa a instrução imediatamente antes da pasta de trabalho ser salva
Workbook_BeforePrint Executa a instrução imediatamente antes de uma impressão
Workbook_AfterSave Executa a instrução imediatamente após a pasta de trabalho ser salva
Workbook_SheetActivate Executa a instrução toda vez que uma planilha for ativada
Workbook_SheetBeforeDoubleClick Executa a instrução toda vez que usuário der um duplo clique em uma célula
Workbook_SheetBeforeRightClick Executa a instrução toda vez que usuário der um clique com botão direito em uma célula
Workbook_SheetChange Executa a instrução toda vez que o conteúdo de uma célula for alterado
Workbook_SheetCalculate Executa a instrução toda vez que algum valor das planilhas é calculado ou recalculado
Workbook_NewSheet Executa a instrução toda vez que uma nova planilha for criada
Workbook_SheetFollowHyperlink Executa a instrução toda vez que um hyperlink for clicado

Principais Eventos da Planilha

Alguns eventos comuns da planilha (Planilha1):

Evento Descrição
Worksheet_SelectionChange Executa a instrução toda vez que a seleção for alterada
Worksheet_Activate Executa a instrução toda vez que a planilha se tornar ativa
Worksheet_Deactivate Executa a instrução quando a planilha deixa de ser ativa
Worksheet_BeforeDoubleClick Executa a instrução quando uma célula da planilha receber um duplo clique
Worksheet_BeforeRightClick Executa a instrução quando uma célula da planilha receber um clique com o botão direito
Worksheet_Calculate Executa a instrução toda vez que algum valor da planilha for calculado ou recalculado
Worksheet_Change Executa a instrução toda vez que o conteúdo de uma célula da planilha for alterado
Worksheet_FollowHyperlink Executa a instrução toda vez que um hyperlink for clicado na planilha

Repare que alguns eventos existem tanto para o caso de Workbook para o caso de Worksheet, mudando apenas o escopo: Workbook vale para todo arquivo, independente de planilha e Worksheet vale apenas para uma Planilha específica.



SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.

Excel ® é uma marca registrada da Microsoft Corporation.

© 2024 SuperExcelVBA | SOBRE

Protected by Copyscape