Introdução Macros auto-executáveis
Cavalcante Consultores > Biblioteca de Excel > Introdução Macros auto-executáveis
Macros auto-executáveis são macros que se executam automaticamente na ocorrência de um evento, como por exemplo: ao abrir um arquivo, ao selecionar uma planilha, ao selecionar uma célula e até mesmo em um horário pré-determinado. Esse evento pode ser uma ação promovida pelo usuário ou ser iniciado pelo próprio código.
Tipos de macros auto-executáveis
de Arquivo (Workbook): Ao abrir, fechar ou salvar um arquivo.
de Planilha (Worksheet): Ao ativar uma planilha, selecionar uma célula, alterar um valor.
de Tempo (On Time): É executada em um horário pré-estabelecido.
Sintaxe - Macros de arquivo
As macros de arquivo são escritas dentro da janela de código da pasta de trabalho. Para abrir a janela de código, clique duas vezes sobre o item dentro da pasta Microsoft Excel Objetos, dentro da janela Projeto no Editor do Visual Basic.
Private Sub Worksheet_[evento]([argumento])
[argumentos] definem a ação a tomar após o fim do procedimento interno. Opcional.
[procedimento] pode ser um procedimento ou função armazenada em um módulo padrão.
Tipos comuns de [evento] de arquivo:
Open - Executa um procedimento na abertura do arquivo.
BeforeClose – Executa um procedimento ao fechar um arquivo.O Argumento Cancel – se for definido como True (verdadeiro) o fechamento será abortado.
BeforeSave – Executa um procedimento ao salvar o arquivo. O argumento SaveAsUi - se for definido como True (verdadeiro) exibe a caixa de diálogo Salvar como. Já o argumento Cancel – se for definido como True (verdadeiro) o salvamento será abortado.
Sintaxe - Macros de planilha
As macros de planilha são escritas dentro da janela de código da planilha respectiva (Plan1, Plan2, etc.). Para abrir a janela de código, clique duas vezes sobre a planilha dentro da pasta Microsoft Excel Objetos, dentro da janela Projeto, no Editor do Visual Basic.
[argumento] informa o intervalo de células selecionado ou alterado.
Tipos comuns de [evento] de planilha:
Activate - Executa um procedimento ao ativar uma planilha.
Change – Executa um procedimento quando um valor na planilha é alterado. O argumento Target – informa o intervalo de células alterado.
SelectionChange – Executa um procedimento ao selecionar uma célula da planilha. O argumento Target – informa o intervalo de células selecionado.
Todos os eventos possíveis dentro de uma pasta de trabalho ou planilha são listados clicando na setinha da janela de código. Confira no vídeo abaixo para saber como selecionar um evento e escrever um procedimento associado.
Neste exemplo, vamos mostrar um evento de arquivo (ao abrir o arquivo) e um evento de planilha (ao alterar um campo específico da planilha).
O evento Workbook Open foi escrito dentro da janela de código da pasta de trabalho PastaTeste. Ao abrir o arquivo a mensagem abaixo será exibida:
Veja a sintaxe que cria esta janela:
MsgBox "Arquivo de exemplo de macros auto-executáveis"
O evento Worksheet Change foi escrito dentro da janela de código da planilha Plan1 (Macros Auto Exe). Quando você digita seu nome no campo B5 o evento Worksheet Change é acionado. Usando o argumento Target podemos saber qual campo foi alterado. Se a célula B5 for alterada, a função Calculo é acionada e calcula o número de letras do nome digitado.
Veja a sintaxe do evento que chama a função cálculo:
' Usamos o argumento Target para saber qual campo foi alterado.
' Executa a função calculo se campo B5 foi alterado.
If (linha = 5 And coluna = 2) Then
Calculo linha, coluna
A função Calculo foi escrita dentro do Módulo1. Ela retorna o número de letras do nome digitado no campo B5. Veja a sintaxe abaixo: