11 Stimmen

Verwendung von Visual Basic für den Zugriff auf Unterordner im Posteingang?

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items

Ich habe den obigen Code verwendet, um auf den Hauptposteingang von Outlook zuzugreifen, aber wie kann man auf die Ordner im Posteingang zugreifen und seine Mails mit VBA!

22voto

brettdj Punkte 53619

Das ist sehr knapp :)

Um alle Mails in einem Ordner namens "temp" unter dem Posteingang zu erhalten, versuchen Sie Folgendes

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem

Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("Temp")

For Each msg In olFolder.Items
    Debug.Print msg.Subject
Next

4voto

Casey Morter Punkte 113

Ich stellte fest, dass sich in meinem Posteingang einige Elemente befanden, die keine E-Mail-Elemente waren und das Skript zum Stillstand brachten. Durch diese kleine Änderung konnte das Skript weiterlaufen, wenn z. B. eine Sitzungseinladung gefunden wurde:

Sub getmail()

Dim olApp As Outlook.Application
Dim objNS As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder

'Dim msg As Outlook.MailItem
Dim InboxItem As Object

Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("temp")

For Each InboxItem In olFolder.Items
    Debug.Print InboxItem.Subject
    Debug.Print InboxItem.EntryID
Next

End Sub

Vielen Dank für Ihre Antwort! Hat mir sehr geholfen!

(Ich bitte um Entschuldigung - ich wollte einen Kommentar abgeben, aber ich habe nicht genug Vertreter )

4voto

Greg Glynn Punkte 141

Und um noch tiefer zu gehen, fügen Sie weitere Set olFolder-Zeilen hinzu:

Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("temp")
Set olFolder = olFolder.Folders("temp2")
Set olFolder = olFolder.Folders("temp3")

Bringt Sie zu \Inbox\temp\temp2\temp3\

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X