Um E-Mails in Outlook mit VBA zu filtern, können Sie den folgenden Ansatz verwenden. Wir erstellen ein Makro, das alle E-Mails in einem bestimmten Ordner durchsucht und diejenigen herausfiltert, die bestimmte Kriterien erfüllen. Zum Beispiel können wir nach E-Mails von einem bestimmten Absender oder mit einem bestimmten Betreff suchen.
Schritt-für-Schritt-Anleitung
- VBA-Editor öffnen:
- Öffnen Sie Outlook.
- Drücken Sie
Alt + F11
, um den VBA-Editor zu öffnen.
- Neues Modul hinzufügen:
- Klicken Sie auf
Einfügen
und dann aufModul
.
- Klicken Sie auf
- VBA-Code einfügen:
- Kopieren Sie den folgenden Code und fügen Sie ihn in das neue Modul ein.
Sub FilterEmails()
Dim olApp As Outlook.Application
Dim olNamespace As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olItems As Outlook.Items
Dim olMail As Outlook.MailItem
Dim i As Integer
' Outlook Anwendung und Namespace initialisieren
Set olApp = Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
' Ordner auswählen (z.B. Posteingang)
Set olFolder = olNamespace.GetDefaultFolder(olFolderInbox)
' Alle Elemente im Ordner durchsuchen
Set olItems = olFolder.Items
' Durch alle Elemente im Ordner iterieren
For i = olItems.Count To 1 Step -1
If TypeOf olItems(i) Is Outlook.MailItem Then
Set olMail = olItems(i)
' Filterkriterien festlegen
If olMail.SenderEmailAddress = "example@example.com" And InStr(olMail.Subject, "Wichtig") > 0 Then
' Aktion für gefilterte E-Mails (z.B. in eine Nachrichtenbox anzeigen)
MsgBox "Gefilterte E-Mail gefunden: " & olMail.Subject
End If
End If
Next i
' Aufräumen
Set olMail = Nothing
Set olItems = Nothing
Set olFolder = Nothing
Set olNamespace = Nothing
Set olApp = Nothing
End Sub
Erklärung des Codes
- Initialisierung:
olApp
,olNamespace
undolFolder
werden initialisiert, um auf die Outlook-Anwendung und den Posteingang zuzugreifen.
- Durchsuchen der Elemente:
- Mit
Set olItems = olFolder.Items
werden alle Elemente im Posteingang abgerufen. - Eine Schleife iteriert durch jedes Element und prüft, ob es sich um eine E-Mail handelt (
TypeOf olItems(i) Is Outlook.MailItem
).
- Mit
- Filterkriterien anwenden:
- E-Mails werden gefiltert, basierend auf dem Absender (
olMail.SenderEmailAddress = "example@example.com"
) und einem Schlüsselwort im Betreff (InStr(olMail.Subject, "Wichtig") > 0
).
- E-Mails werden gefiltert, basierend auf dem Absender (
- Aktion bei gefilterten E-Mails:
- Für gefilterte E-Mails wird eine Nachricht angezeigt (
MsgBox
).
- Für gefilterte E-Mails wird eine Nachricht angezeigt (
- Aufräumen:
- Alle Objekte werden am Ende des Codes freigegeben (
Set ... = Nothing
).
- Alle Objekte werden am Ende des Codes freigegeben (
Anpassung
Sie können die Filterkriterien und Aktionen nach Bedarf anpassen. Zum Beispiel können Sie nach anderen Feldern wie dem Datum oder dem Empfänger filtern oder andere Aktionen wie das Verschieben von E-Mails in einen anderen Ordner durchführen.