Você está na página 1de 13

Lista de eventos VBA

Eventos so a maneira como o Excel permite executar cdigo com base em certas aes que acontecem em uma pasta de trabalho. Esta lista tem por objetivo servir como uma referncia criao de eventos no Excel, conforme introduo dada na aula 58. NVEIS DOS EVENTOS O controle baseado nas aes de aplicativo O controle baseado em aes da pasta de trabalho O controle baseado em aes de planilha O controle baseado em aes de grfico

Nvel do aplicativo Nvel da pasta de trabalho Nvel da planilha Nvel da planilha de grficos

NVEL DA PASTA DE TRABALHO Workbook_Activate() Ocorre quando a pasta de trabalho contendo este evento se torna a pasta de trabalho ativa. Workbook_Deactivate() Ocorre quando a pasta de trabalho ativa alternada entre a pasta de trabalho contendo o evento e outra pasta de trabalho. Workbook_Open() ativado quando uma pasta de trabalho aberta. Workbook_BeforeSave(ByVal SaveAsUI As Ocorre quando a pasta de trabalho Boolean, Cancel As Boolean) salva. SaveAsUI configurado como True se for preciso exibir a caixa de dilogo Salvar Como. Cancel configurado como True impede que a pasta de trabalho seja salva. Workbook_BeforePrint(Cancel As Boolean) Ocorre quando qualquer comando de impresso utilizado. Cancel configurado como True evita que a pasta de trabalho seja impressa. Exemplo: Dim LastRow As Long Dim PrintLog As Worksheet Set PrintLog = Worksheets(PrintLog) LastRow = PrintLog.Cells(PrintLog.Rows.Count, 1).End(xlUp).Row + 1 With PrintLog .Cells(LastRow, 1).Value = Now()

Workbook_BeforeClose(Cancel As Boolean)

Workbook_NewSheet(ByVal Sh As Object)

Workbook_WindowResize(ByVal Window) Workbook_WindowActivate(ByVal Window)

Wn

As

Wn

As

Workbook_WindowDeactivate(ByVal Wn As Window)

Workbook_AddInInstall()

Workbook_AddInUninstall Workbook_SheetActivate(ByVal Object) Sh As

Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

.Cells(LastRow, 2).Value = Application.UserName .Cells(LastRow, 3).Value = ActiveSheet.Name End With End Sub Ocorre quando uma pasta de trabalho fechada. Cancel configurado como True impede que a pasta de trabalho seja fechada. Ocorre quando uma nova planilha adicionada pasta de trabalho ativa. Sh o novo objeto. Planilha ou planilha de Grfico. Ocorre quando a pasta de trabalho ativa redimensionada. Wn a janela. Ocorre quando qualquer janela de pasta de trabalho for ativada. Wn a janela. Esse evento inicia apenas quando a janela da pasta de trabalho ativada. Ocorre quando qualquer janela da pasta de trabalho desativada. Wn a janela. Esse evento apenas quando a janela de pasta de trabalho desativada. Ocorre quando a pasta de trabalho instalada como um suplemento. Ativado quando selecionado o boto Microsoft Office, Opes do Excel, Suplemento Ocorre quando uma pasta de trabalho suplemento desinstalada. Ocorre quando alguma planilha de grfico ou planilha na pasta de trabalho ativada. Sh a planilha ativa. Para afetar uma planilha especfica, referencie Worksheet_Activate; para planilhas de grfico, referencie Chart_Activate. Ocorre quando o usurio d um clique duplo em qualquer planilha de grfico ou planilha na pasta de trabalho ativa. Sh a planilha ativa Target o objeto que recebe o clique

Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Workbook_SheetCalculate(ByVal Object)

Sh

As

Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

WorkBook_Sync(ByVal SyncEventType Office.MsoSyncEventType)

As

Workbook_SheetDeactivate(ByVal Object)

Sh

As

duplo. Cancel configurado como True impede que a ao padro acontea. Para afetar uma planilha especfica referencie Worksheet_BeforeDoubleClick; para planilhas de grfico, referencie Chart_BeforeDoubleClick Ocorre quando o usurio clica com o boto direito do mouse em qualquer planilha na pasta de trabalho ativa. Sh a planilha ativa Target o objeto clicado com o boto direito do mouse Cancel configurado como True impede que a ao padro acontea Para afetar uma planilha especfica referencie Worksheet_BeforeRightClick; para planilhas de grfico, referencie Chart_BeforeRightClick Ocorre quando qualquer intervalo em uma planilha alterado. Sh a planilha Target o intervalo alterado Para afetar uma planilha especfica, referencie Worksheet_Calculate; para planilhas de grfico referencie Chart_Calculate. Ocorre quando qualquer intervalo em uma planilha alterado. Sh a planilha Target o intervalo alterado. Para afetar uma planilha especfica, referencie Worksheet_Change. Ocorre quando a cpia local de uma planilha em uma pasta de trabalho que faz parte de um espao de trabalho de documento sincronizada como a cpia no servidor. SyncEventType o status da sincronizao. Ocorre quando qualquer planilha de grfico ou planilha na pasta de trabalho desativada. Sh a planilha que est sendo modificada. Para afetar uma planilha especfica,

Workbook_SheetFollowHyperlink(ByVal As Object, ByVal Target As Hyperlink)

Sh

Workbook_SheetSelectionChange(ByVal As Object, ByVal Target As Range)

Sh

Workbook_PivotTableCloseConnection(ByVal Target As PivotTable)

Workbook_PivotTableOpenConnection(ByVal Target As PivotTable)

Workbook_RowsetComplete(ByVal Description As String, ByVal Sheet As String, ByVal Sucess As Boolean)

referencie Worksheet_Deactivate; para planilhas de grfico, referencie Chart_Deactivate. Ocorre quando qualquer hiperlink clicado no Excel. Sh a planilha ativa Target o hiperlink Para afetar uma planilha especfica, referencie Worksheet_FollowHyperlink Ocorre quando um novo intervalo selecionado em qualquer planilha. Sh a planilha ativa Target o intervalo afetado. Ocorre quando um relatrio de tabela dinmica fecha sua conexo com a origem dos dados. Target a tabela dinmica que fechou a conexo Ocorre quando um relatrio de tabela dinmica abre uma conexo com a origem dos dados. Target a tabela dinmica que fechou a conexo. Ocorre quando um usurio pesquisa um recordset ou chama a ao rowset em uma Tabela Dinmica OLAP. Description uma descrio do evento. Sheet ou Plan o nome da planilha em que o recordset criado Sucess indica sucesso ou falha

NVEL DE PLANILHA Worksheet_Activate() Ocorre quando a planilha em que est o evento se torna a planilha ativa. Workbook_Deactivate() Ocorre quando a pasta de trabalho ativa alternada entre a pasta de trabalho contendo o evento e outra pasta de trabalho. Worksheet_BeforeDoubleClick(ByVal Target Permite controlar o que acontece As Range, Cancel As Boolean) quando o usurio d um clique duplo na planilha Target o intervalo selecionado na planilha Cancel configurado como False por padro, mas se configurado como

True, impede que a ao padro como inserir uma clula, acontea. O exemplo muda a cor interna da clula para vermelho Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myColor As Integer Target.Interior.ColorIndex = 3 End Sub Worksheet_BeforeRightClick(ByVal Target desencadeado quando o usurio clica As Range, Cancel As Boolean) com o boto direito do mouse em um intervalo. Target o objeto clicado com o boto direito do mouse Cancel configurado como True impede que a ao padro acontea. Worksheet_Calculate() Ocorre depois que uma planilha recalculada. Worksheet_Change(ByVal Target As Range) desencadeado por uma alterao no valor de uma clula, por exemplo, quando o texto inserido, editado ou excludo. Target a clula que foi alterada. A funo abaixo alterna rapidamente a data digitada sem os dois pontos com a data com dois pontos, facilitando a digitao de horas
'<alteracao> 'No evento on Change passada a posio que est sendo alterada Private Sub Worksheet_Change(ByVal Target As Range) 'Se a coluna do endereo for "A" e o valor for maior que 1 aplica a formatao If Target.Column = 1 And Target.Value > 1 Then 'Desliga a chamada do evento para que no fique recursiva a funo Application.EnableEvents

= False 'Realiza a formatao da hora Target.Value = Left(Target.Value, 2) & ":" & Right(Target.Value, 2) 'Liga novamente a chamada do evento para que volte a funcionar Application.EnableEvents = True End If End Sub '</alteracao>

Worksheet_SelectionChange(ByVal As Range)

Target Ocorre quando um novo intervalo selecionado. Target o intervalo recentemente selecionado. Worksheet_FollowHyperlink(ByVal Target As Ocorre quando um hiperlink recebe Hyperlink) um clique. Target o hiperlink. EVENTOS DE PLANILHA DE GRFICO Eventos de grfico ocorrem quando um grfico alterado ou ativado. Os grficos incorporados exigem o uso de mdulos de classe para acessar os eventos. Grficos incorporados So os grficos inseridos nas planilhas. Como os grficos incorporados no criam planilhas de grfico, os eventos de grfico no esto prontamente disponveis. Voc pode disponibiliz-los adicionando um mdulo de classe como a seguir: 1. Insira um mdulo de classe, clicando no mdulo VBA em Inserir, Mdulo de classe 2. Renomeie o mdulo de classe como cl_ChartEvents 3. Insira a seguinte linha de cdigo no mdulo de classe: Public WithEvents myChartClass As Chart Os eventos agora esto disponveis para o grfico. Eles so acessoados no mdulo de classe em vez de em uma planilha de grfico.

4. Insira um mdulo padro 5. Insira as seguintes linhas de cdigo no mdulo padro Dim myClassModule As New cl_ChartEvents Sub InitializeChart() Set myClassModule.myChartClass = Worksheets(1).ChartObjects(1).Chart End Sub

Essas linhas inicializam o grfico incorporado a ser reconhecido como um objeto Grfico. O procedimento deve ser executado uma vez por sesso. (Utilize Workbook_Open para automatizar isso) NVEL DE PLANILHA (PLANILHA DE GRFICO) Worksheet_Activate() Ocorre quando a planilha em que est o evento se torna a planilha ativa. Chart_Activate() Ocorre quando uma planilha de grfico ativada ou alterada Chart_BeforeDoubleClick(ByVal Ocorre quando qualquer parte de um grfico ElementID As Long, ByVal Arg1 As Long, recebe um clique duplo. ByVal Arg2 As Long, Cancel As Boolean) ElementID a parte do grfico que recebe um clique duplo, como a legenda; Arg1 e Arg2 so dependentes do ElementID; Cancel configurado como True impede que a ao padro de um clique duplo ocorra. O exemplo oculta a legenda quando ela recebe um clique duplo, dar um duplo clique no eixo abre novamente a legenda. Private Sub MyChartClassChart_BeforeDoubleClick(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long, Cancel As Boolean) Select Case ElementID Case xlLegend Me.HasLegend = False Cancel = True Case xlAxis Me.HasLegend = True Cancel = True

Chart_BeforeRightClick(Cancel Boolean)

As

Chart_Calculate() Chart_Deactivate() Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)

Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)

Chart_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)

Chart_Resize()

Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)

End Select End Sub Ocorre quando um grfico clicado com o boto direito do mouse. Cancel configurado como True impede que a ao padro de clicar com o boto direito do mouse ocorra. Ocorre quando os dados de um grfico so alterados Ocorre quando outra planilha se torna a planilha ativa. Ocorre quando o cursor estiver sobre o grfico e qualquer boto do mouse for pressionado. Button o boto do mouse que foi clicado Shift se uma tecla Shift, Ctrl, ou Alt foi pressionada X a coordenada X do cursor quando o boto pressionado Y a coordenada Y do cursor quando o boto pressionado. Ocorre quando o cursor movido sobre um grfico. Button o boto do mouse que est sendo mantido pressionado, se houver algum Shift [e quando uma tecla Shift, Ctrl ou Alt foi pressionada X a coordenada X do cursor do grfico Y a coordenada Y do cursor no grfico. Ocorre quando qualquer boto do mouse liberado enquando o cursosr est no grfico. Button o boto do mouse que foi clicado Shift se uma tecla Shift, Ctrl, ou Alt foi pressionada X a coordenada X do cursor quando o boto pressionado Y a coordenada Y do cursor quando o boto pressionado. Ocorre quando um grfico redimensionado por meio das alas de dimensionamento, mas no quando o tamanho alterado por meio do controle de tamanho na faixa Formato das ferramentas de grfico. Ocorre quando um elemento grfico selecionado. ElementID a parte do grfico selecionada, como por exemplo a legenda Arg1 e Arg2 so dependentes do ElementID

Chart_SeriesChange(ByVal SeriesIndex Ocorre quando um ponto nos dados do As Long, ByVal PointIndex As Long) grfico atualizado. SeriesIndex o deslocamento na coleo Srie da srie atualizada PointIndex o deslocamento na coleo Ponto no ponto atualizado EVENTOS NO NVEL DE APLICATIVO Eventos no nvel do aplicativo afetam todas as pastas de trabalho abertas em uma sesso do Excel. Esses eventos requerem um mdulo de classes para acess-los (semelhante ao mdulo de classe utilizado para acessar eventos para eventos de grfico incorporado). Siga estes passos para criar o mdulo de classe: 1. Insira um mdulo de classe, clicando no mdulo VBA em Inserir, Mdulo de classe 2. Renomeie o mdulo para cl_AppEvents 3. Insira a seguinte linha de cdigo no mdulo de classe Public WithEvents AppEvent As Application

Os eventos de aplicativo esto agora disponveis para a pasta de trabalho, como mostrado na Figura. Eles so acessados no mdulo de classe em vez de em um mdulo padro.

4. Insira um mdulo padro 5. Insira as seguintes linhas de cdigo no mdulo padro Dim myAppEvent As New cl_AppEvents Sub InitializeAppEvent() Set myAppEvent.AppEvent = Application End Sub

Estas linhas inicializam o aplicativo para que ele reconhea eventos de aplicativo. O procedimento deve ser executado uma vez por sesso. (Utilize Workbook_Open para automatizar isso) NVEL DE APLICATIVO AppEvent_AfterCalculate() Ocorre depois que todos os clculos esto completos e no h nenhuma consulta em andamento. AppEvent_NewWorkbook(ByVal Wb As Ocorre quando uma nova pasta de Workbook) trabalho criada. Wb a nova pasta de trabalho. O exemplo organiza as pastas de trabalho em uma configurao lado a lado. Private Sub AppEvent_NewWorkbook(ByVal Wb As Workbook) Application.Windows.Arrange xlArrangeStyleTiled End Sub Ocorre quando uma planilha ativada. Sh a planilha (planilha comum ou de grfico). Ocorre quando o usurio d um clique duplo em uma planilha. Target o intervalo selecionado na planilha Cancel configurado como False por padro, mas se configurado como True impede que a ao padro seja execudada. Ocorre quando o usurio clica com o boto direito do mouse em qualquer planilha. Sh a planilha ativa Target o objeto clicado com o boto direito do mouse Cancel configurado como True impede que a ao padro aconta. Ocorre quando qualquer planilha recalculada ou quaisquer dados atualizados so plotados em um grfico.

AppEvent_SheetActivate(ByVal Sh As Object)

AppEvent_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

AppEvent_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

AppEvent_SheetCalculate(ByVal Sh As Object)

AppEvent_SheetChange(ByVal Sh As Object, ByVal Target As Range)

AppEvent_SheetDeactivate(ByVal Sh As Object)

AppEvent_SheetFollowHiperlink(ByValk Sh As object, ByVal Target As Hiperlink)

AppEvent_SheetSelectionChange(ByVal Object, ByVal Target As Range)

Sh

As

AppEvent_WindowActivate(Byval Workbook, ByVal Wn As Window)

Wb

As

AppEvent_WindowDeactivate(ByVal Workbook, ByVal Wn As Window)

Wb

As

AppEvent_WindowResize(ByVal Workbook, ByVal Wn As Window)

Wb

As

AppEvent_WorkbookActivate(ByVal Workbook)

Wb

As

AppEvent_WorkbookAddinInstall(ByVal Wb As Workbook)

AppEvent_WorkbookAddinUninstall(ByVal As Workbook)

Wb

AppEvent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)

Sh a planilha ativa. Ocorre quando o valor de qualquer clula alterado. Sh a planilha Target o intervalo alterado. Ocorre quando qualquer planilha de grfico ou planilha em uma pasta de trabalho desativada. Sh a planilha que est sendo desativada. Ocorre quando qualquer hiperlink clicado no Excel. Sh a planilha ativa Target o hiperlink. Ocorre quando um novo intervalo selecionado em qualquer planilha. Sh a planilha ativa. Target o intervalo selecionado Ocorre quando qualquer janela de pasta de trabalho ativada. Wb a pasta de trabalho que est sendo desativada Wn a janela. Ocorre quando qualquer janela de pasta de trabalho desativada. Wb a pasta de trabalho que est sendo desativada Wn a janela Ocorre quando a pasta de trabalho ativa redimensionada Wb a pasta de trabalho ativa Wn a janela Ocorre quando qualquer pasta de trabalho ativada Wn a janela Ocorre quando uma pasta de trabalho instalada como um suplemento Wb a pasta de trabalho que est sendo instalada Ocorre quando uma pasta de trabalho (suplemento) desinstalada Wb a pasta de trabalho que est sendo deinstalada Ocorre quando uma pasta de trabalho fecha.

Wb a pasta de trabalho Cancel configurado como True impede que a pasta de trabalho seja fechada AppEvent_WorkbookBeforePrint(ByVal Wb As Ocorre quando qualquer comando Workbook, Cancel As Boolean) Imprimir utilizado. Wb a pasta de trabalho Cancel configurado como True impede que a pasta de trabalho seja impressa. O exemplo posiciona o nome de usurio no rodap de cada pgina impressa: Private Sub AppEvent_WorkbookBeforePrint( ByVal Wb As Workbook, Cancel As Boolean) Wb.ActiveSheet.PageSetup.LeftFo oter = Application.UserName End Sub Ocorre quando a pasta de trabalho salva. Wb a pasta de trabalho SaveAsUI configurado como True se a caixa de dilogo Salvar Como precisar ser exibida Cancel configurado como True impede que a pasta de trabalho seja salva. Ocorre quando uma nova planilha adicionada pasta de trabalho ativa Wb a pasta de trabalho Sh a nova planilha ou objeto de planilha de grfico Ocorre quando uma pasta de trabalho aberta Wb a pata de trabalho que acabou de ser aberta. Ocorre quando um relatrio de tabela dinmica fecha sua conexo com a sua origem de dados. Wb a pasta de trabalho contendo a tabela dinmica que desencadeou o evento

AppEvent_WorkbookBeforeSave(Byval Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)

AppEvent_WorkbookNewSheet(ByVal Workbook, ByVal Sh As Object)

Wb

As

AppEvent_WorkbookOpen(ByVal Workbook)

Wb

As

AppEvent_WorkbookPivotTableCloseConnection (ByVal Wb As Workbook, ByVal Target As PivotTable)

AppEvent_WorkbookPivotTableOpenConnection (ByVal Wb As Workbook, ByVal Target As PivotTable)

AppEvent_WorkbookRowSetComplete(ByVal Wb As Workbook, ByVal Description As String, ByVal Sheet As String, ByVal Success As Boolean)

AppEvent_WorkbookSync(ByVal Wb As Workbook, ByVal SyncEventType As Office, MsoSyncEventType)

Target a tabela dinmica que fechou a conexo Ocorre quando um relatrio de tabela dinmica abre uma conexo com sua origem de dados. Wb a pasta de trabalho contendo a tabela dinmica que desencadeou o evento Target a tabela dinmica que abriu a conexo. Ocorre quando o usurio pesquisa um recordset ou chama ao rowset em uma tabela dinmica OLAP. Wb a pasta de trabalho que desencadeou o evento Description uma descrio do evento Sheet o nome da planiliha em que o recordset criado Success indica sucesso ou falha Ocorre quando a cpia local de uma planilha em uma pasta de trabalho que faz parte de um Espao de trabalho de Documento sincronizada com a cpia no servidor. Wb a pata de trabalho que desencadeou o evento. SyncEventType o status da sincronizao.

Você também pode gostar