Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Outlook Posteingang überwachen

Forumthread: VBA Outlook Posteingang überwachen

VBA Outlook Posteingang überwachen
20.03.2013 20:21:47
Andy
Hallo Leute,
heute habe ich mal eine Outlookfrage, ich weiß, dass das Forum für Excel ist, aber ihr kennt euch ja so gut mit VBA aus und fragt mit Excel auch Outlookinhalte ab... in der Hoffnung, dass meine Frage für euch leicht zu beantworten ist stelle ich sie hier mal ein:
Also ich überwache meine Outlook-Posteingang mit folgendem Code:

Public Sub Application_Startup()
Set newMail = Application.GetNamespace("MAPI").Folders.Item("Postfach").Folders.Item(" _
Posteingang").Items
End Sub
Private Sub newMail_ItemAdd(ByVal Item As Object)
MsgBox ("Neues Element im Posteingang")
End Sub 

Sobald ein neues Element im Posteingang eingeht bekomme ich eine Meldung "Neues Element im Posteingang". Durch eine Formularvorlage kommt es zu einer kurzen Zwischenspeicheraktion im Posteingang aufgrund dessen die Meldung auch erscheint, obwohl die Nachricht direkt in einen Unterordner verschoben wird.
Jetzt meine Frage dazu, wie muß man den Code anpassen, so dass die Meldung erst erscheint, wenn das neue Element länger als 10 Sekunden im Posteingang liegt?
Gruß Andy

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Outlook Posteingang überwachen
21.03.2013 06:39:36
Luschi
Hallo Andy,
es ist erstaunlich, daß dieses kleine Problem richtig schön in Arbeit ausarten kann.
Jeder Vba-Prog (Excel/Word) lächelt da leise vor sich hin und verweist auf die Möglichkeit
Application.OnTime Now + TimeValue("0:0:10"), "DeinMakro"
Noch ein bischen Code ringsrum und fertig ist die Laube.
Ja, soweit sogut! - A B E R: in Outlook (auch 2010) hat das Application-Object diese
Methode nicht. Habe da aber etwas im I-Net gefundenn, das diese fehlende Sache realisiert.
Werde heute Nachmittag meinen 1. Versuch hier reinstellen.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: VBA Outlook Posteingang überwachen
21.03.2013 21:17:34
Andy
Hallo Luschi,
konntest Du schon etwas erreichen?
Würde mich freuen, wenn Du mir helfen könntest.
Gruß Andy

AW: VBA Outlook Posteingang überwachen
22.03.2013 07:33:23
Luschi
Hallo Andy,
ja, ich bin dran, aber mein Chef nervt. Irgendwie hat er einen Riecher dafür,
wenn ich mich mit interessanten Dingen herumschlage. Dann schlägt er kräftig zurück
und beschäftigt mich mit der Bearbeitung von für mich langweiligen Tätigkeiten.
Gruß von Luschi
aus klein-Paris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Outlook Posteingang Überwachen: So setzt du es um


Schritt-für-Schritt-Anleitung

Um deinen Outlook-Posteingang mit VBA zu überwachen und eine Benachrichtigung zu erhalten, wenn ein neues Element länger als 10 Sekunden im Posteingang bleibt, kannst du folgenden Code verwenden:

  1. Öffne Outlook und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu und füge den folgenden Code ein:
Public Sub Application_Startup()
    Set newMail = Application.GetNamespace("MAPI").Folders.Item("Postfach").Folders.Item("Posteingang").Items
End Sub

Private Sub newMail_ItemAdd(ByVal Item As Object)
    Application.OnTime Now + TimeValue("0:0:10"), "CheckNewMail"
End Sub

Public Sub CheckNewMail()
    Dim newItem As Object
    Set newItem = Application.GetNamespace("MAPI").Folders.Item("Postfach").Folders.Item("Posteingang").Items.GetFirst

    If Not newItem Is Nothing Then
        MsgBox "Neues Element im Posteingang"
    End If
End Sub
  1. Speichere das Projekt und schließe den VBA-Editor.
  2. Starte Outlook neu, damit der Code aktiv wird.

Häufige Fehler und Lösungen

  • Problem: Keine Benachrichtigung erscheint, wenn ein neues Element eingeht.

    • Lösung: Stelle sicher, dass der Code in der richtigen Instanz des VBA-Editors eingefügt wurde und dass die Makros in den Outlook-Einstellungen aktiviert sind.
  • Problem: Der Timer funktioniert nicht wie erwartet.

    • Lösung: Überprüfe, ob die OnTime-Methode korrekt implementiert ist und dass der Code nicht durch andere Prozesse unterbrochen wird.

Alternative Methoden

Eine alternative Möglichkeit, deinen Outlook-Posteingang zu überwachen, besteht darin, das Ereignis ItemAdd in einem bestimmten Ordner zu verwenden, anstatt die OnTime-Methode. Diese Methode ist jedoch weniger flexibel, wenn es um zeitliche Verzögerungen geht.

Private Sub newMail_ItemAdd(ByVal Item As Object)
    If Item.ReceivedTime > Now - TimeValue("0:0:10") Then
        MsgBox "Neues Element im Posteingang"
    End If
End Sub

Diese Methode überprüft, ob das Element in den letzten 10 Sekunden empfangen wurde.


Praktische Beispiele

Hier sind einige praktische Anwendungen des oben genannten Codes:

  1. Benachrichtigung bei wichtigen E-Mails: Du kannst den Code anpassen, um nur bei E-Mails von bestimmten Absendern eine Benachrichtigung anzuzeigen.
  2. Automatisierte Aufgaben: Kombiniere den Code mit anderen VBA-Skripten, um automatisch auf bestimmte E-Mails zu reagieren.

Tipps für Profis

  • Nutze die Debug.Print-Anweisung, um Informationen während der Ausführung des Codes in das unmittelbare Fenster zu schreiben. Dies hilft dir, Fehler schneller zu identifizieren.
  • Experimentiere mit den Filtermöglichkeiten, um deinen Posteingang effektiver zu überprüfen. So kannst du gezielt nur relevante E-Mails überwachen.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Code anpassen, um nur bestimmte Arten von E-Mails zu überwachen?
Antwort: Du kannst Bedingungen im newMail_ItemAdd-Ereignis hinzufügen, um beispielsweise nur E-Mails mit bestimmten Betreffs oder Absendern zu überprüfen.

2. Frage
Funktioniert dieser Code in allen Outlook-Versionen?
Antwort: Der Code sollte in den meisten modernen Outlook-Versionen funktionieren, jedoch kann es je nach Version Unterschiede in der Implementierung geben. Stelle sicher, dass du die passende Version verwendest und die entsprechenden Einstellungen überprüfst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige