OL2002: SelectionChange Event Runs When Switching Folders (294431)



The information in this article applies to:

  • Microsoft Outlook 2002

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: For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
  1. On the Tools menu, point to Macro and then click Visual Basic Editor.
  2. 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.
  3. 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 "SelectionChange"
    End Sub
    					
  4. Restart Outlook. The message box will be displayed because the first item in your Inbox was selected.
  5. Switch to any folder that contains items. The message box will be displayed, indicating the SelectionChange event ran.

REFERENCES

For additional information about available resources and answersto commonly asked questions about Microsoft Outlook solutions, click the article number below to view the article in the Microsoft Knowledge Base:

287530 OL2002: Questions About Custom Forms and Outlook Solutions


Modification Type:MajorLast Reviewed:6/23/2005
Keywords:kbprb KB294431