Erhalten Sie eine Erinnerung, wenn eine Nachricht nicht ankommt?

Outlook VBA

In der Welt der E-Mail-Kommunikation ist die Zuverlässigkeit des Nachrichtenempfangs von entscheidender Bedeutung. Insbesondere für Administratoren und andere Personen, die routinemäßige Statusmeldungen erhalten, ist es wichtig, bei Nichtankunft einer erwarteten Nachricht zeitnah informiert zu werden. Dies könnte ein Indikator für ein zugrunde liegendes Problem sein. In diesem Zusammenhang stellt sich oft die Frage, ob und wie man automatische Erinnerungen oder E-Mails einrichten kann, falls eine bestimmte Nachricht nicht innerhalb eines festgelegten Zeitrahmens eintrifft.


Automatisierung durch Skriptregeln in Outlook

Die Lösung dieses Problems in Microsoft Outlook basiert auf der Verwendung von Skriptregeln, die ein hohes Maß an Anpassungsfähigkeit bieten. Outlook selbst verfügt nicht über eine integrierte Timer-Funktion, weshalb die Umsetzung über Umwege erfolgt: das Setzen von Erinnerungen für eingehende Nachrichten, die als Trigger für die Überprüfung dienen. Konkret wird beim Eintreffen einer Nachricht eine Erinnerung für eine Stunde gesetzt und anschließend die Erinnerung sowie die Markierung von älteren Nachrichten entfernt. Alternativ kann man sich dafür entscheiden, die älteren Nachrichten einfach zu löschen.

Um die in dem Artikel beschriebenen Funktionalitäten zu implementieren, benötigen Sie zwei verschiedene VBA-Skripte für Microsoft Outlook. Das erste Skript setzt automatisch eine Erinnerung für neu eingetroffene E-Mails, während das zweite Skript für die Überwachung eines geteilten Postfachs konzipiert ist. Nachfolgend finden Sie die detaillierten Anweisungen und den Code für beide Skripte.

Skript 1: Automatische Erinnerung für neu eingetroffene Nachrichten

Dieses Skript wird verwendet, um für jede neu eingetroffene E-Mail eine Erinnerung zu setzen und ältere Nachrichten mit demselben Betreff zu aktualisieren oder zu löschen.

Public Sub RemindNewMessages(Item As Outlook.MailItem)

Dim objInbox As Outlook.MAPIFolder
Dim intCount As Integer
Dim objVariant As Variant

Set objInbox = Session.GetDefaultFolder(olFolderInbox)

With Item
.MarkAsTask olMarkThisWeek
.TaskDueDate = Now + 1
.ReminderSet = True
.ReminderTime = Now + 0.041 ' Setzt eine Erinnerung für eine Stunde später
.Categories = "Remind in 1 Hour"
.Save
End With

Item.Save

' Sucht nach existierenden Nachrichten und entfernt die Markierung und Erinnerung
For intCount = objInbox.Items.Count To 1 Step -1
Set objVariant = objInbox.Items.Item(intCount)

If objVariant.MessageClass = "IPM.Note" Then
If LCase(objVariant.Subject) = LCase(Item.Subject) And objVariant.SentOn < Item.SentOn Then
With objVariant
.ClearTaskFlag
.Categories = ""
.Save
End With
' Alternativ: Löschen der älteren Nachrichten
' objVariant.Delete
End If
End If
Next

Set objInbox = Nothing
End Sub

Skript 2: Überwachung eines geteilten Postfachs

Dieses Skript verwendet ein ItemAdd-Ereignis, um den Posteingang eines geteilten Postfachs zu überwachen und Erinnerungen für jede eingetroffene Nachricht zu setzen.

Private WithEvents objNewMailItems As Outlook.Items

Private Sub Application_Startup()
Dim objInbox As Outlook.MAPIFolder
Dim objOwner As Outlook.Recipient
Set objNS = Application.GetNamespace("MAPI")

Set objOwner = objNS.CreateRecipient("chris") ' "chris" durch den tatsächlichen Namen ersetzen
objOwner.Resolve
If objOwner.Resolved Then
Set objInbox = objNS.GetSharedDefaultFolder(objOwner, olFolderInbox)
End If

Set objNewMailItems = objInbox.Items
End Sub

Sub objNewMailItems_ItemAdd(ByVal Item As Object)

Dim intCount As Integer
Dim objVariant As Variant

With Item
.MarkAsTask olMarkThisWeek
.ReminderSet = True
.ReminderTime = Now + 0.041 ' Setzt eine Erinnerung für eine Stunde später
.Categories = "Remind in 1 Hour"
.Save
End With

Item.Save

' Sucht nach existierenden Nachrichten und entfernt die Markierung und Erinnerung
For intCount = objInbox.Items.Count To 1 Step -1
Set objVariant = objInbox.Items.Item(intCount)

If objVariant.MessageClass = "IPM.Note" Then
If LCase(objVariant.Subject) = LCase(Item.Subject) And objVariant.SentOn < Item.SentOn Then
With objVariant
.ClearTaskFlag
.Categories = ""
.Save
End With
' Alternativ: Löschen der älteren Nachrichten
' objVariant.Delete
End If
End If
Next
End Sub

Anwendung der Skripte

  1. Öffnen Sie den VBA-Editor in Outlook durch Drücken von Alt + F11.
  2. Erstellen Sie ein neues Modul: Rechtsklicken Sie im Projekt-Explorer auf “VBAProject (Outlook)”, wählen Sie “Einfügen” > “Modul”.
  3. Kopieren Sie den entsprechenden Code (je nachdem, welches Skript Sie verwenden möchten) in das neue Modul.
  4. Passen Sie die Makrosicherheit an, um die Ausführung der Skripte zu ermöglichen.

Denken Sie daran, die Makrosicherheit nach dem Testen anzupassen, um Ihr System nicht unnötigen Risiken auszusetzen.

Implementierung einer Erinnerungsfunktion

Die Implementierung einer solchen Funktion erfordert die Nutzung des Visual Basic for Applications (VBA) Editors in Outlook, um ein spezifisches Skript hinzuzufügen. Dieses Skript – eine Subroutine namens RemindNewMessages – setzt eine Erinnerung für neu eingetroffene Nachrichten und passt bei älteren Nachrichten die Markierungen an. Um dieses Skript zu nutzen, muss es in ein neues Modul im VBA-Editor von Outlook eingefügt und eine Skriptregel erstellt werden.

Überwachung geteilter Postfächer

Für geteilte Postfächer bietet sich eine Variante des Skripts an, die ein ItemAdd Makro verwendet, um den Posteingang eines geteilten Postfachs zu überwachen. Dies erfordert, dass das geteilte Postfach im Profil des Benutzers vorhanden ist. Das Makro prüft jede eingehende Nachricht und setzt entsprechende Erinnerungen, wobei ältere Nachrichten nach demselben Prinzip wie oben beschrieben behandelt werden.

 

Fazit

Die Automatisierung von Erinnerungen für nicht eingetroffene E-Mails in Outlook mittels Skriptregeln und VBA bietet eine flexible Lösung für ein spezifisches Kommunikationsbedürfnis. Durch die detaillierte Anpassung der Skripte können Benutzer sicherstellen, dass sie immer über den Status wichtiger Nachrichten informiert sind. Dieser Ansatz zeigt die Leistungsfähigkeit von Outlook’s Anpassungsmöglichkeiten und bietet Nutzern, insbesondere in administrativen und technischen Berufen, ein wertvolles Werkzeug zur Optimierung ihrer Arbeitsabläufe.

-

Vorheriger Artikel Nächster Artikel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

CAPTCHA eingeben * Das Zeitlimit ist erschöpft. Bitte CAPTCHA neu laden.