OL2000: SelectionChange Event Fires When Switching Folders

ID: Q224917


The information in this article applies to:
  • Microsoft Outlook 2000


SYMPTOMS

You implement the SelectionChange event in your solution expecting that the event will fire only when the user switches to a different item in a folder, but the event also fires 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 fires. If the folder does not contains items the SelectionChange event will not fire.


MORE INFORMATION

The Microsoft Outlook Visual Basic Reference (Vbaoutl.chm) is unclear on the actual behavior, and states that the event does not fire 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 Solution Provider or the Microsoft fee-based consulting line at (800) 936-5200. For more information about Microsoft Certified Solution Providers, please see the following page on the World Wide Web:

http://www.microsoft.com/mcsp/
For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

http://www.microsoft.com/support/supportnet/overview/overview.asp
  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:


  4. 
    Dim WithEvents myOlExp As Outlook.Explorer
    
    Private Sub Application_Startup()
       Set myOlExp = Application.ActiveExplorer
    End Sub
    
    Private Sub myOlExp_Close()<BR/>
       ' Need to do this so Outlook exits properly.
       Set myOlExp = Nothing
    End Sub
    
    Private Sub myOlExp_SelectionChange()
       MsgBox "SelectionChange"
    End Sub 
  5. Restart Outlook. The message box will be displayed because the first item in your Inbox was selected.


  6. Switch to any folder that contains items. The message box will be displayed, indicating the SelectionChange event fired.



REFERENCES

For additional information about available resources and answers to commonly asked questions about Microsoft Outlook 2000 solutions, please see the following article in the Microsoft Knowledge Base:

Q146636 OL2000: Questions About Custom Forms and Outlook Solutions

Additional query words: OL2K OutSol OutSol2000 vbscript

Keywords : kbdta
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbprb


Last Reviewed: November 13, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.