Podemos ter eventos de pasta de trabalho (como abertura, fechamento, etc.) que podem ser gatilhos (switches) para o código VBA.
Para seguir as instruções quando a pasta de trabalho for aberta, vá para ThisWorkbook e selecione Workbook:
O evento Workbook_Open será adicionado por padrão e será acionado quando a pasta de trabalho for aberta:
Private Sub Workbook_Open() End Sub
Por exemplo, se adicionarmos a seguinte instrução, a caixa de diálogo será exibida quando a pasta de trabalho for aberta:
Private Sub Workbook_Open() MsgBox "Welcome" End Sub
Para executar as instruções antes de fechar a pasta de trabalho, selecione BeforeClose:
Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub
O fechamento da pasta de trabalho pode ser cancelado definindo a variável "Cancel" como True.
Abaixo está um exemplo em que o usuário é solicitado a confirmar o fechamento da pasta de trabalho:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Se o usuário responder com NO, então a variável Cancel terá o valor TRUE (que cancelará o fechamento da pasta de trabalho) If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then Cancel = True End If End Sub
Este evento ocorre imediatamente antes da pasta de trabalho ser salva:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub
O salvamento de um arquivo pode ser cancelado definindo a variável "Cancel" como True.
Este evento ocorre antes da pasta de trabalho ser impressa:
Private Sub Workbook_BeforePrint(Cancel As Boolean) End Sub
A impressão do arquivo pode ser cancelada configurando a variável "Cancel" como True.
Este evento ocorre imediatamente após salvar a pasta de trabalho:
Private Sub Workbook_AfterSave(ByVal Success As Boolean) End Sub
Este evento ocorre sempre que você alterna entre planilhas em uma pasta de trabalho:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) End Sub
Neste exemplo, o nome da planilha ativa é exibido na caixa de diálogo:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Name of Sheet : " & Sh.Name End Sub
Este evento ocorre quando uma célula da planilha é clicada duas vezes:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
Por exemplo, podemos usar este evento para adicionar uma cor de preenchimento de célula, dependendo da planilha selecionada:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If Sh.Name = "Sheet1" Then Target.Interior.Color = RGB(255, 108, 0) 'Laranja Else Target.Interior.Color = RGB(136, 255, 0) 'Verde End If End Sub
Este evento ocorre antes do clique direito do mouse:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
Este evento ocorre sempre que o conteúdo da planilha é alterado:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) End Sub
Este evento ocorre sempre que os dados de uma planilha são calculados ou recalculados:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) End Sub
Este evento ocorre sempre que o conteúdo do intervalo de células selecionado na planilha é alterado:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) End Sub
Neste exemplo, a cor de preenchimento muda se a célula A1 estiver vazia:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Range("A1") = "" Then Target.Interior.Color = RGB(124, 255, 255) 'Azul End If End Sub
Este evento ocorre sempre que uma nova planilha é adicionada à pasta de trabalho:
Private Sub Workbook_NewSheet(ByVal Sh As Object) End Sub
Este evento ocorre quando um link (hipertexto) é clicado:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) End Sub