Cavalcante Consultores – treinamento e consultoria em finanças e Excel

Criando macros autoexecutáveis

Cavalcante Consultores > Biblioteca de Excel > Criando macros autoexecutáveis

O que é?

Ao trabalhar com planilhas mais elaboradas, é possível que você precise executar tarefas de rotina em certas circunstâncias: por exemplo, você pode desejar limpar alguns campos de uma planilha sempre que ela for aberta, ou salvá-la automaticamente sempre que o usuário tentar fechá-la. Utilizando VBA, você pode criar macros executadas automaticamente quando um evento pré-determinado ocorrer.

Uma macro autoexecutável é elaborada da mesma forma que uma macro comum: a única diferença é seu nome e o local onde ela é armazenada. Macros comuns são guardadas em um módulo e ficam disponíveis para uso em qualquer planilha (se forem públicas) ou no módulo no qual foram escritas (se forem privadas). Já as macros autoexecutáveis são guardadas em um dos dois módulos especiais abaixo:

Observe um exemplo dos módulos acima na janela de projetos do editor do Visual Basic:

Exemplo

Neste exemplo, criaremos uma macro simples que dá um aviso de segurança ao usuário quando ele tentar abrir um hiperlink em uma planilha. Crie uma nova planilha e abra o editor do Visual Basic. Em seguida, dê um clique duplo em Plan1: você verá o campo de edição de módulo, como na imagem abaixo.

O campo de edição do módulo Plan1 contém um menu drop-down com uma listagem dos eventos disponíveis para esta planilha. Observe a imagem:

Note que, ao selecionar o evento FollowHyperlink, uma nova macro será criada, com o nome de Worksheet_FollowHyperlink. Ao adicionar código nesta macro, ele será executado sempre que o usuário clicar em um hiperlink dentro da planilha. Podemos, portanto, utilizar o seguinte código para avisar o usuário de que ele está saindo da planilha para um site na internet:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    MsgBox "Você está seguindo um hiperlink para " & _
    Target.Address & ". Não forneça suas senhas a terceiros, " & _
    "e não instale programas suspeitos."
End Sub

O objeto Target é fornecido em alguns eventos e representa o alvo do evento. Neste exemplo, Target é fornecido como uma instância de Hyperlink, e possui os objetos e métodos desta classe.

Ao clicar em um hiperlink da planilha em cujo módulo a macro foi escrita, o usuário receberá um aviso como este:

Listagem de eventos

A lista a seguir contém alguns eventos de planilha úteis e suas respectivas descrições:

A listagem a seguir contém alguns eventos que afetam o arquivo (EstaPasta_de_Trabalho) como um todo:

Pratique!