HOWTO: Get the Unread Message Count from an Outlook Folder

ID: Q171603


The information in this article applies to:
  • Microsoft Visual Basic Control Creation, Learning, Professional, and Enterprise Editions for Windows, versions 5.0, 6.0
  • Microsoft Outlook 97


SUMMARY

The following code sample demonstrates how to determine the count of all unread messages on a per folder basis for all folders grouped under a specified Microsoft Outlook folder. The sample assumes that the Microsoft Outlook mail client is installed.


MORE INFORMATION

The code below uses a recursive routine to iterate through a mail folder to produce a list of all its sub-folders and a count of corresponding unread messages. The data is then displayed in the Visual Basic Immediate Window. The code takes advantage of the UnReadItemCount property of the Outlook MAPIFolder object.

  1. Open a Standard EXE project in Visual Basic.


  2. Select References from the Project menu.


  3. Select "Microsoft Outlook 8.0 Object Library" (msoutl8.olb), and click OK.


  4. Select Project1 Properties on the Project menu and set the Startup Object to "Sub Main".


  5. Select Add Module from the Project menu to add a module to the project.


  6. Add the following sample code to Module1:

    NOTE: Modify the FOLDER_TO_OPEN constant as appropriate.


  7. Sample Code

    
    Option Explicit
    
       Private Sub Main()
          Dim olMAPI As Outlook.NameSpace
          Dim Folder As Outlook.MAPIFolder
          Const FOLDER_TO_OPEN = "Mailbox - John Doe"   'Modify as appropriate
    
          Set olMAPI = GetObject("", "Outlook.Application") _
                                  .GetNamespa   ce("MAPI")
          Call PrintFolderNames(olMAPI.Folders(FOLDER_TO_OPEN), "->")
          Set olMAPI = Nothing
       End Sub
    
       Sub PrintFolderNames(tempfolder As Outlook.MAPIFolder, a$)
          Dim i As Integer
          If tempfolder.Folders.Count Then
             Debug.Print a$ & " " & tempfolder.Name & "  ";
             Debug.Print tempfolder.UnReadItemCount
             For i = 1 To tempfolder.Folders.Count
               Call PrintFolderNames(tempfolder.Folders(i), a$ & "->")
             Next i
          Else
             Debug.Print a$ & " " & tempfolder.Name & "  ";
             Debug.Print tempfolder.UnReadItemCount
          End If
       End Sub
     
  8. Run the program.


RESULT: The unread message count for the folder FOLDER_TO_OPEN appears in the Immediate Window.

Additional query words:

Keywords : kbnokeyword kbVBp500 kbVBp600 kbGrpVBDB
Version : WINDOWS:5.0,6.0,97
Platform : WINDOWS
Issue type : kbhowto


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.