Microsoft KB Archive/294431

= OL2002: SelectionChange Event Runs When Switching Folders =

Article ID: 294431

Article Last Modified on 11/23/2006

-

APPLIES TO


 * Microsoft Outlook 2002 Standard Edition

-



This article was previously published under Q294431





SYMPTOMS
You implement the SelectionChange event in your solution expecting that the event will run only when the user switches to a different item in a folder, but the event also runs when the user clicks a different folder.



CAUSE
When you select a folder that contains items, Outlook automatically selects the first item in the folder, so the event runs. If the folder does not contains items the SelectionChange event will not run.



MORE INFORMATION
The Microsoft Outlook Visual Basic Reference (Vbaol10.chm) is unclear on the actual behavior, and states that the event does not run when switching folders. However, this is only true if the folder does not contain items.

[The SelectionChange event] occurs when the selection of the current view changes. Other selection changes (such as the selected folder) do not cause this event to occur...

Steps to Reproduce Problem
Microsoft 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:

https://partner.microsoft.com/global/30000104

For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

 On the Tools menu, point to Macro and then click Visual Basic Editor. In the Project Explorer window, expand Project 1 to show entries below it, and then expand Microsoft Outlook Objects to show entries below that. Double-click the ThisOutlookSession module to open the code window.  Add the following Visual Basic for Applications code to the ThisOutlookSession module: Dim WithEvents myOlExp As Outlook.Explorer

Private Sub Application_Startup Set myOlExp = Application.ActiveExplorer End Sub

Private Sub myOlExp_Close ' Need to do this so Outlook exits properly. Set myOlExp = Nothing End Sub

Private Sub myOlExp_SelectionChange MsgBox &quot;SelectionChange&quot; End Sub  Restart Outlook. The message box will be displayed because the first item in your Inbox was selected. Switch to any folder that contains items. The message box will be displayed, indicating the SelectionChange event ran.</ol>

<div class="references_section">