Exemplos de Excel VBA: exemplos de eventos introdutórios

Se você está tentando obter uma boa compreensão do Excel VBA , provavelmente pode se beneficiar de alguns exemplos para desenvolver essa habilidade visual básica. Aqui, você encontra alguns exemplos de VBA do Excel para que possa pegar o jeito desse negócio de gerenciamento de eventos.

Exemplo de Excel VBA: O evento Open para uma pasta de trabalho

Um dos eventos do Excel VBA mais comumente usados é o evento Workbook Open. Suponha que você tenha uma pasta de trabalho que usa todos os dias. O procedimento Workbook_Open neste exemplo é executado sempre que a pasta de trabalho é aberta. O procedimento verifica o dia da semana; se for sexta-feira, o código exibe uma mensagem de lembrete para você.

Para criar o procedimento VBA do Excel que é executado sempre que ocorre o evento Workbook Open, siga estas etapas:

Abra a pasta de trabalho do Excel.
Qualquer pasta de trabalho do Excel servirá.

Pressione Alt + F11 para ativar o VBE.

Localize a pasta de trabalho na janela Projeto.

Clique duas vezes no nome do projeto para exibir seus itens, se necessário.

Clique duas vezes no item ThisWorkbook.
O VBE exibe uma janela de código vazia para o objeto ThisWorkbook.

Na janela Código, selecione Pasta de trabalho na lista suspensa Objeto (esquerda).
O VBE insere as instruções inicial e final para um procedimento Workbook_Open.

Insira as seguintes instruções, de modo que o procedimento de evento completo tenha a seguinte aparência:

Sub Workbook_Open ()
  Dim Msg As String
  Se Dia da semana (agora) = 6, então
    Msg = "Hoje é sexta-feira. Não se esqueça de"
    Msg = Msg & "enviar o Relatório TPS!"
    MsgBox Msg
  Fim se
End Sub

A janela de código deve ser semelhante a esta.

Exemplos de Excel VBA: exemplos de eventos introdutórios

Este procedimento de manipulador de eventos é executado quando a pasta de trabalho é aberta.

Workbook_Open é executado automaticamente sempre que a pasta de trabalho é aberta. Ele usa a função WeekDay do VBA para determinar o dia da semana. Se for sexta-feira (dia 6), uma caixa de mensagem lembrará o usuário de enviar um relatório. Se não for sexta-feira, nada acontece.

Se hoje não for sexta-feira, talvez seja difícil testar este procedimento. Você pode apenas alterar o 6 para corresponder ao número do dia real de hoje.

E, claro, você pode modificar este procedimento da maneira que quiser. Por exemplo, a versão a seguir exibe uma mensagem sempre que a pasta de trabalho é aberta. Isso fica irritante depois de um tempo.

Um procedimento Workbook_Open pode fazer quase tudo. Esses manipuladores de eventos costumam ser usados ​​para o seguinte:

  • Exibindo mensagens de boas-vindas (como na pasta de trabalho legal de Frank)
  • Abrindo outras pastas de trabalho
  • Ativando uma planilha específica na pasta de trabalho
  • Configurando menus de atalho personalizados

Aqui está um exemplo final do Excel VBA de um procedimento Workbook_Open que usa as funções GetSetting e SaveSetting para controlar quantas vezes a pasta de trabalho foi aberta. A função SaveSetting grava um valor no registro do Windows e a função GetSetting recupera esse valor (consulte o sistema de Ajuda para obter detalhes). O exemplo a seguir do Excel VBA recupera a contagem do registro, incrementa-a e salva-a de volta no registro. Ele também informa ao usuário o valor de Cnt que corresponde ao número de vezes que a pasta de trabalho foi aberta.

Sub Workbook_Open ()
  Dim Cnt enquanto longo
  Cnt = GetSetting ("MyApp", "Configurações", "Abrir", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "Esta pasta de trabalho foi aberta" & Cnt & "vezes."
End Sub

Exemplos de Excel VBA: exemplos de eventos introdutórios

Usando um manipulador de eventos Workbook_Open para controlar quantas vezes uma pasta de trabalho foi aberta.

Exemplo de Excel VBA: O evento BeforeClose para uma pasta de trabalho

Aqui está um exemplo do procedimento manipulador de eventos do Excel VBA Workbook_BeforeClose, que é executado automaticamente imediatamente antes de a pasta de trabalho ser fechada. Este procedimento está localizado na janela Código para um objeto ThisWorkbook:

Private Sub Workbook_BeforeClose (Cancelar como Booleano)
  Dim Msg As String
  Dim Ans enquanto
  Dim FName As String
  Msg = "Deseja fazer um backup deste arquivo?"
  Resp = MsgBox (Msg, vbYesNo)
  Se Resp = vb Sim, então
    FName = "F: \ BACKUP \" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Fim se
End Sub

This routine uses a message box to ask the user whether he would like to make a backup copy of the workbook. If the answer is yes, the code uses the SaveCopyAs method to save a backup copy of the file on drive F. If you adapt this procedure for your own use, you need to change the drive and path.

Excel programmers often use a Workbook_BeforeClose procedure to clean up after themselves. For example, if you use a Workbook_Open procedure to change some settings when you open a workbook (hiding the status bar, for example), it’s only appropriate that you return the settings to their original state when you close the workbook. You can perform this electronic housekeeping with a Workbook_BeforeClose procedure.

Ao usar o evento Workbook_BeforeClose, lembre-se do seguinte: Se você fechar o Excel e qualquer arquivo aberto tiver sido alterado desde o último salvamento, o Excel exibirá sua caixa de mensagem usual “Deseja salvar suas alterações”. Clicar no botão Cancelar cancela todo o processo de fechamento. Mas o evento Workbook_BeforeClose terá sido executado de qualquer maneira.

Exemplo de Excel VBA: O evento BeforeSave para uma pasta de trabalho

O evento BeforeSave, como o próprio nome indica, é disparado antes que uma pasta de trabalho seja salva. Este evento ocorre quando você escolhe Arquivo → Salvar ou Arquivo → Salvar como.

O procedimento a seguir, que é colocado na janela Código para um objeto ThisWorkbook, demonstra o evento BeforeSave. A rotina atualiza o valor em uma célula (célula A1 na Planilha1) sempre que a pasta de trabalho é salva. Em outras palavras, a célula A1 serve como um contador para controlar o número de vezes que o arquivo foi salvo.

Sub Livro Privado_BeforeSave (ByVal SaveAsUI _
  Como booleano, cancelar como booleano)
  Dim Counter As Range
  Definir contador = folhas ("Folha1"). Intervalo ("A1")
  Counter.Value = Counter.Value + 1
End Sub

Observe que o procedimento Workbook_BeforeSave tem dois argumentos: SaveAsUI e Cancel. Para demonstrar como esses argumentos funcionam, examine a macro a seguir, que é executada antes que a pasta de trabalho seja salva. Este procedimento tenta impedir que o usuário salve a pasta de trabalho com um nome diferente. Se o usuário escolher Arquivo → Salvar como, o argumento SaveAsUI será True.

Quando o código é executado, ele verifica o valor SaveAsUI. Se esta variável for True, o procedimento exibe uma mensagem e define Cancel como True, o que cancela a operação de Salvar.

Sub Livro Privado_BeforeSave (ByVal SaveAsUI _
  Como booleano, cancelar como booleano)
  Se SaveAsUI então
    MsgBox "Você não pode salvar uma cópia desta pasta de trabalho!"
  Cancelar = Verdadeiro
  Fim se
End Sub

Observe que esse procedimento realmente não impedirá que alguém salve uma cópia com um nome diferente. Se alguém realmente quiser fazer isso, basta abrir a pasta de trabalho com as macros desabilitadas. Quando as macros são desabilitadas, os procedimentos do manipulador de eventos também são desabilitados, o que faz sentido porque, afinal, são macros.

Leave a Comment

12 Atalhos de teclas de função do Word 2016

12 Atalhos de teclas de função do Word 2016

Descubra os principais atalhos de teclado do Word 2016 para melhorar sua produtividade. Desde o uso das teclas de função até rápidas combinações de atalhos.

Apagar desenhos de caneta e marca-texto nos slides do PowerPoint

Apagar desenhos de caneta e marca-texto nos slides do PowerPoint

Aprenda como apagar desenhos de caneta e marca-texto nos slides do PowerPoint para manter suas apresentações sempre organizadas e profissionais.

Como remover campos e itens calculados de uma tabela dinâmica do Excel

Como remover campos e itens calculados de uma tabela dinâmica do Excel

Você pode remover facilmente campos e itens calculados de uma tabela dinâmica do Excel. Siga os passos simples para gerenciar seus dados de forma eficiente!

Como usar o recurso de documento mestre do Word 2019

Como usar o recurso de documento mestre do Word 2019

Descubra como usar o recurso de documento mestre do Word 2019 para organizar grandes documentos de forma eficiente e otimizar a edição. Ideal para romances e textos longos.

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.