Outlook - "OlDefaultFolders" - Konstanten...

Frage: Wie erhalte ich die Anzahl der Mails in z. B. dem Posteingang (olFolderInbox), oder im Ordner Entwurf (olFolderDrafts)? Nachfolgend der Code für den Posteingang. Die Konstanten für die anderen Ordner sind auch angegeben. Diese können auch über den Objektkatalog im VBA-Editor von Outlook (F2) ausgelesen werden. Das Bild zeigt den entsprechenden Ausschnitt aus der Bibliothek Outlook - der Klasse OlDefaultFolders und dann das Element olFolderCalendar mit seiner Konstante = 9.

Entscheidend also "objFolder.Items.Count".



Option Explicit
Dim blnTMP As Boolean
'-------------------------------------------------------------------------- 
' Module    : Modul3 
' Procedure : Main 
' Author    : Case (Ralf Stolzenburg) 
' Date      : 02.10.2012 
' Purpose   : Outlook Anzahl Mails... 
'-------------------------------------------------------------------------- 
Public Sub Main()
    Dim objNameSpace As Object
    Dim objFolder As Object
    Dim objApp As Object
    On Error GoTo Fin
    'Set objApp = OffApp("Word") 
    'Set objApp = OffApp("Word", False) 
    Set objApp = OffApp("Outlook")
    'Set objApp = OffApp("Outlook", False) 
    'Set objApp = OffApp("PowerPoint") 
    'Set objApp = OffApp("PowerPoint, False") 
    'Set objApp = OffApp("ACCESS") 
    'Set objApp = OffApp("ACCESS", False) 
    If Not objApp Is Nothing Then
        Set objNameSpace = objApp.GetNamespace("MAPI")
        ' Nachfolgend die Elemente bzw. Konstanten von "OlDefaultFolders" 
        ' Entnommen aus Objektkatalog (F2 im VBA-Editor) in Outlook 2010 
        'Const olFolderCalendar = 9 
        'Const olFolderConflicts = 19 (&H13) 
        'Const olFolderContacts = 10 
        'Const olFolderDeletedItems = 3 
        'Const olFolderDrafts = 16 (&H10) 
        Const olFolderInbox = 6
        'Const olFolderJournal = 11 
        'Const olFolderJunk = 23 (&H17) 
        'Const olFolderLocalFailures = 21 (&H15) 
        'Const olFolderManagedEmail = 29 (&H1D) 
        'Const olFolderNotes = 12 
        'Const olFolderOutbox = 4 
        'Const olFolderRssFeeds = 25 (&H19) 
        'Const olFolderSentMail = 5 
        'Const olFolderServerFailures = 22 (&H16) 
        'Const olFolderSuggestedContacts = 30 (&H1E) 
        'Const olFolderSyncIssues = 20 (&H14) 
        'Const olFolderTasks = 13 
        'Const olFolderToDo = 28 (&H1C) 
        'Const olPublicFoldersAllPublicFolders = 18 (&H12) 
        ' Hier ist jetzt der Ordner "Posteingang" = "olFolderInbox" = 6 
        Set objFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
        MsgBox "There are " & objFolder.Items.Count & " mails in the inbox."
    Else
        MsgBox "Application not installed!"
    End If
Fin:
    If Not objApp Is Nothing Then
        If blnTMP = True Then
            objApp.Quit
            blnTMP = False
        End If
    End If
    Set objFolder = Nothing
    Set objNameSpace = Nothing
    Set objApp = Nothing
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub
Private Function OffApp(ByVal strApp As String, _
    Optional blnVisible As Boolean = True) As Object
    Dim objApp As Object
    On Error Resume Next
    Set objApp = GetObject(, strApp & ".Application")
    Select Case Err.Number
        Case 429
            Err.Clear
            Set objApp = CreateObject(strApp & ".Application")
            blnTMP = True
            If blnVisible = True Then
                On Error Resume Next
                objApp.Visible = True
                Err.Clear
            End If
    End Select
    On Error GoTo 0
    Set OffApp = objApp
    Set objApp = Nothing
End Function

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...