No VBA (Visual Basic for Applications), os eventos Ativar e Desativar podem ser usados para executar código automaticamente quando um objeto, como uma planilha do Excel ou um formulário de usuário, é ativado ou desativado. Aqui está como você pode usar esses eventos:
Evento Ativar
O evento `Activate` é acionado quando um objeto é ativado. Para uma planilha, por exemplo, isso ocorre quando a planilha se torna a planilha ativa no Excel.
Exemplo para uma Planilha:
Private Sub Worksheet_Activate()
MsgBox "A planilha foi ativada!"
End Sub
- Abra o Excel e pressione `ALT` + `F11` para abrir o Editor do VBA.
- No painel de projeto, encontre o objeto da planilha (por exemplo, `Planilha1`).
- Clique duas vezes sobre a planilha para abrir a janela de código associada.
- Insira o seguinte código:
Toda vez que essa planilha se tornar ativa, uma caixa de mensagem será exibida.
Evento Desativar
O evento `Deactivate` é acionado quando um objeto é desativado, ou seja, quando deixa de ser o objeto ativo.
Exemplo para uma Planilha:
Private Sub Worksheet_Deactivate()
MsgBox "A planilha foi desativada!"
End Sub
- No mesmo local onde inseriu o código para o evento Ativar, insira também o seguinte código:
Isso exibirá uma caixa de mensagem sempre que a planilha for desativada (quando você muda para outra planilha).
Usando em Formulários de Usuário
Os eventos Ativar e Desativar também podem ser usados em UserForms:
Private Sub UserForm_Activate()
MsgBox "UserForm foi ativado!"
End Sub
Private Sub UserForm_Deactivate()
MsgBox "UserForm foi desativado!"
End Sub
- No Editor do VBA, insira um UserForm no seu projeto (`Inserir -> UserForm`).
- Clique duas vezes no UserForm para abrir a janela de código.
- Insira o seguinte código para o evento Ativar:
- Insira o seguinte código para o evento Desativar:
Considerações
- Esses eventos são úteis para automatizar tarefas baseadas na interação do usuário com a interface do Excel ou com formulários de usuário.
- Certifique-se de que as macros estão habilitadas no Excel para que o VBA funcione.
- Use esses eventos com cuidado para evitar conflitos ou comportamento indesejado ao alternar entre objetos rapidamente.