XL97: How to Use EnableEvents to Disable Event Handling (165867)
The information in this article applies to:
- Microsoft Excel 97 for Windows
This article was previously published under Q165867 SUMMARY
In Microsoft Excel, you can create event handlers, which are Visual Basic
for Applications macros that respond to specific events. An event handler
can be run by another Visual Basic macro. This article contains an example
macro that disables event handling while a Visual Basic for Applications
macro is running.
MORE INFORMATIONMicrosoft provides programming examples for illustration only, without warranty either
expressed or implied, including, but not limited to, the implied warranties of
merchantability and/or fitness for a particular purpose. This article assumes
that you are familiar with the programming language being demonstrated and the
tools used to create and debug procedures. Microsoft support professionals can
help explain the functionality of a particular procedure, but they will not
modify these examples to provide added functionality or construct procedures to
meet your specific needs. If you have limited programming experience, you may
want to contact a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
Creating a Sample Event Procedure
In this example you set up a Visual Basic for Applications macro that
responds to the SelectionChange event in a worksheet. To set up the event
handler, use the following steps:
- Close and save any open workbooks, and then create a new workbook.
- Start the Visual Basic Editor (press ALT+F11).
- If the Project Explorer window is not visible, click Project Explorer
on the View menu.
- Double-click Sheet1 to open the Code window for Sheet1.
- In the Code window for Sheet1, enter the following code for the
SelectionChange event:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
MsgBox ActiveCell.Address
End Sub
- Switch to Microsoft Excel (ALT+F11).
- Click any cell on Sheet1.
When you click a cell on Sheet1, a message box displays the cell address of
the selected cell.
Using a Procedure to Run the Event Handler
The following sample macro runs the event handler. To set up the macro, use
the following steps:
- Start the Visual Basic Editor (press ALT+F11).
- On the Insert menu, click Module.
- Enter the following code into the Visual Basic module:
Sub FireEvent()
For X = 1 To 5
Cells(X, 1).Select
Next X
End Sub
- Switch to Microsoft Excel (ALT+F11).
- On the Tools menu, point to Macro, and then click Macros. Then, click
FireEvent and click Run.
A message box appears every time the FireEvent macro selects a cell on
Sheet1.
Preventing the Event Procedure from Running
To prevent an event handler from running while a macro is running, set the
EnableEvents property to False. To use the EnableEvents property in an
example, use the following steps:
- Start the Visual Basic Editor (press ALT+F11).
- On the Insert menu, click Module.
- Type the following macro in the module:
Sub DisableEvent()
'Disable all event firing.
Application.EnableEvents = False
For X = 1 To 5
Cells(X, 1).Select
Next X
'Re-enable all event firing.
Application.EnableEvents = True
End Sub
- Switch to Microsoft Excel (press ALT+F11).
- On the Tools menu, point to Macro, and click Macros. Then, click
DisableEvent and click Run.
No message boxes appear during the execution of the macro. This indicates
that the SelectionChange event is not running. If you select another cell
on Sheet1 after the DisableEvent macro is finished running, the event
handler is active again and a message box appears.
NOTE: If you do not set the EnableEvents property to True before your macro
finishes running, events are disabled. If you set the EnableEvents property
to False make sure that you set it back to True.
REFERENCES
For more information about using event handlers, click the Office
Assistant, type events, click Search, and then
click to view the "Using events with Microsoft Excel objects" topic.
NOTE: If the Assistant is hidden, click the Office Assistant button on the
Standard toolbar. If Microsoft Excel Help is not installed on your
computer, please see the following article in the Microsoft Knowledge Base:
120802 Office: How to Add/Remove a Single Office Program or Component
Modification Type: | Minor | Last Reviewed: | 10/11/2006 |
---|
Keywords: | kbhowto kbProgramming KB165867 |
---|
|