elefant54
Goto Top

Bitte Tipp für VBA-Script - Outlook 2007 IMAP-Ordner aufklappen

Hallo zusammen,

an alle "Visual-Basic-Experten" in der Community...

Ich verwende privat Outlook 2007 mit folgenden Konten:

- eine PST (POP3 eMails)
- ein IMAP-Account
- zwei Archiv-PST

Da Outlook ja die "Unart" hat IMAP-Ordner nicht automatisch "aufzuklappen" habe ich mir mit einem VBA-Script nach einer Idee aus dem Netz beholfen - siehe nachstehend:

Private Sub Application_Startup()
    Dim objFolder As Outlook.folder
    Dim folder As Outlook.folder
    Dim folder2 As Outlook.folder
    Dim strStartFolder As String
    Dim lngFolder As Long
    Dim x As Integer
    Dim bad As String
   
    'namen des Ordners, der nicht expandiert werden soll  
    bad = "Archivordner IMAP"  
    'max ermitteln  
    x = Outlook.Session.Folders.Count
    ' Auch bei Fehler weitermachen '  
    On Error Resume Next
    ' Startordner festlegen (z. B. "Kontakte", "Posteingang", "Aufgaben" etc.)  
    strStartFolder = "Outlook-Heute"  
    ' Alle Konten-Ordner aufklappen'  
    For i = 0 To x
        'überprüfen ob es der bad ordner ist, nur weiter,  
        'wenn ers nicht ist  
        If (Outlook.Session.Folders.Item(i) <> bad) Then
            'Posteingang markieren um Konto order aufzuklappen  
            Call Outlook.ActiveExplorer.SelectFolder( _
                            Outlook.Session.Folders(i).Folders("Posteingang"))  
            subs = Outlook.Session.Folders(i).Folders( _
                                                  "Posteingang").Folders.Count  
            If subs > 0 Then
                'Alle unterordner auch nochmal checken  
                For Each folder In Outlook.Session.Folders(i).Folders( _
                                                        "Posteingang").Folders  
                    'wenn größer ist, alle unterordner auch nochmal markieren  
                    If folder.Folders.Count > 0 Then
                        'Alle Elemente ermitteln und markieren um vollständig  
                        'aufzuklappen  
                        'Alle elemente werden markiert, um "id lücken" zu  
                        'überbrücken und einen crash zu vermeiden  
                        For Each folder2 In folder.Folders
                            Call Outlook.ActiveExplorer.SelectFolder(folder2)
                        Next folder2
                    End If
                Next folder
            End If
        End If
    Next i
  'zu guter letz zu outlook heute wechseln (nutze den persönlichen ordner  
    'dafür, der einfach "Heute" heisst, da er sich nicht löschen läßt.  
    Call Outlook.ActiveExplorer.SelectFolder(Outlook.Session.Folders("Heute"))  
End Sub

So weit funktioniert das Script auch --> der gewünschte IMAP-Ordner sowie alle Unterordner werden geöffnet.

Einzig der Abschluss mit dem Wechsel zu "Outlook-Heute" funktioniert nicht.

Hat jemand eine Idee was ich ändern muss? Mir würde es auch reichen wenn zum Schluss in den Posteingang
des IMAP-Ordners gewechselt wird...

Danke für Eure Ideen + Hilfe bereits im Voraus (Visual Basic ist nicht gerade meine Stärke *g*)!

lg

PS: Screenshot nachstehend!

8f822a694b3db7449bc2be090d40e489
Kommentar vom Moderator Biber am 04.01.2012 um 09:55:49 Uhr
Codeformatierung.

Content-ID: 178307

Url: https://administrator.de/contentid/178307

Ausgedruckt am: 26.11.2024 um 08:11 Uhr

NetWolf
NetWolf 03.01.2012 um 20:24:18 Uhr
Goto Top
Moin Moin,

zu guter letz zu outlook heute wechseln
Einzig der Abschluss mit dem Wechsel zu "Outlook-Heute" funktioniert nicht.
"Outlook-Heute" ist kein Ordner!

(nutze den persönlichen ordner dafür, der einfach "Heute" heisst, da er sich nicht löschen läßt.
der persönliche "Ordner" ist eigentlich kein Ordner sondern ein Postfach, es sei denn, du meinst etwas anderes

Call Outlook.ActiveExplorer.SelectFolder(Outlook.Session.Folders("Heute"))
kann also nicht funktionieren, das es i.d.R. keinen Ordner mit der Bezeichnung "Heute" gibt.

Es wäre also hilfreich zu wissen, wie deine Postfächer und die entsprechenden "Unter"-Ordner bezeichnet sind. Ein Screenshot wäre nicht schlecht.

Grüße aus Rostock
Wolfgang
(Netwolf)
Elefant54
Elefant54 03.01.2012 um 22:26:35 Uhr
Goto Top
Moin Wolfgang,

danke für Deine Rückmeldung!

Habe dem ursprünglichen Beitrag einen Screenshot hinzugefügt!

Perfekt wäre es wenn das Script am Schluss zum Ordner "Posteingang" im Postfach "Cablelink (IMAP)" wechseln würde...

Danke für Deine Hilfe bereits im Voraus face-smile

Grüße aus Salzburg

Elefant54