Nerd-Tipp
Der beste Outlook-Tipp inkl. Makro für PR-Mail-geplagte Journis
Wenn PR-Unternehmen die Mailadresse eines Journalisten oder einer Journalistin in die Finger bekommen, gibts kein Halten mehr. Jede kleine Neuigkeit, die einer der PR-Kunden zu verkünden hat, landet in Form einer Pressemitteilung in den Journi-Postfächern in aller Welt.
Wohlbemerkt: Daran ist grundsätzlich nichts auszusetzen. Und manche PR-Unternehmen machen einen guten Job, indem sie etwa IT-Journis weitgehend von themenfremden Meldungen verschonen. Ausserdem sind wir oft froh über interessante Meldungen, von denen wir die eine oder andere auch zu einer Newsmeldung verarbeiten oder für Gerätetests berücksichtigen.
Aber das erste Problem: Dieses besteht in der unglaublichen Menge von Meldungen, die täglich von den verschiedensten Agenturen eintreffen. Zumindest ich will diese Mailflut nicht in meinem Posteingang haben, sondern in einem separaten Ordner, in dem ich sie in einem ruhigen Moment sichten oder bei Bedarf durchsuchen kann.
Auf den ersten Blick wäre die Lösung in Outlook einfach: Rechtsklick auf die Mail, Regeln/Nachrichten von XY immer verschieben, Ordner namens «PR» wählen, fertig.
Bloss: Tun Sie das mal ein paar Monate oder Jahre lang, wird Outlook zwangsläufig an seine Grenzen stossen, weil der maximale Speicher für Regeln erreicht ist.
Die etwas bessere Lösung habe ich in diesem Artikel behandelt, denn damit erstellt man die Regel nicht für jeden einzelnen Angestellten einer PR-Firma, sondern filtert die Mails anhand der Domain in deren Absenderadresse. Damit schrumpft die Anzahl Regeln massiv, wodurch man Platz im Regelspeicher gewinnt (sofern man die überzähligen Regeln dann auch löscht).
Das zweite Problem: Outlook ist unfassbar umständlich zu bedienen, wenn man die Regel nicht für den exakten Absender, sondern für die Domain erstellen will. Das sind weit über ein Dutzend Klicks sowie Tastatureingaben – für jede einzelne Domain!
Das muss doch schneller gehen! Am besten wärs doch so: Wenn eine Mail einer neuen PR-Agentur eintrifft, möchte man einen Knopf drücken, worauf diese und alle künftigen Mails dieser Agentur automatisch im PR-Ordner landen.
Hierfür bietet sich in Outlook ein Makro an, welches Folgendes tut: Die Domain aus der Absenderadresse der markierten Mail auslesen. Dann diese Domain inkl. @-Zeichen in der bestehenden Filterregel «PR01» im Feld «Mit bestimmten Wörtern in der Absenderadresse» hinzufügen, welche diese Mails in den Ordner namens PR verschiebt. Zum Schluss diese Regel ausführen oder die Mail einfach so gleich in den PR-Ordner verschieben.
In der Not habe ich mich für den Makro-Code spasseshalber zunächst an ChatGPT gewandt, das aber erwartungsgemäss einen unbrauchbaren Murks mit Funktionen produzierte, die es so in Outlook gar nicht gibt.
Und dann fragte ich im PCtipp-Forum.
Das geniale Makro – Vorbereitung
Der Forumsnutzer «nochEinAndreas» hat auf meinen Post hin ein Makro geschrieben, das exakt das Gewünschte tut, zumindest in Outlook unter Windows. Vielleicht hilft es auch anderen Journis oder weiteren Personen, die ein Makro für denselben Zweck brauchen könnten.Wichtig: Gehen Sie genau so vor, wie nachfolgend beschrieben, sonst klappt es nicht. Die Vorbereitung inkl. Implementierung des Makros ist etwas umständlich. Dafür sparen Sie später jeden Tag viel Zeit. Ich möchte das Makro nicht mehr missen!
Voraussetzungen: Erstellen Sie in der linken Spalte mit Rechtsklick auf Ihren Posteingang-Ordner einen Neuen Ordner, den Sie PR nennen. Vielleicht haben Sie den ja bereits.
Hinweis: Sie können auch einen anderen Ordnernamen verwenden, müssten diesen aber später im Makrocode anpassen.
Erstellen Sie anhand einer der zu verschiebenden Mails jetzt von Hand eine Regel nach folgendem Muster: Klicken Sie in der Mailvorschau einer solchen Mail zuerst auf den Absendernamen. Damit erfahren Sie die Domain, in unserem Beispiel ist es afp.com.
Nach dem Klick auf den Absendernamen in der Vorschau erscheint die Domain, hier afp.com.
Quelle: PCtipp.chKlicken Sie in der Mailübersicht mit rechts auf die Mail, wählen Sie Regeln/Regel erstellen.
Erstellen Sie eine Regel ...
Quelle: PCtipp.chGehen Sie unten rechts direkt zu Erweiterte Optionen.
… rufen Sie aber gleich die erweiterten Optionen auf
Quelle: PCtipp.chHaken Sie im oberen Teil die Option «mit bestimmten Wörtern in der Absenderadresse an». Klicken Sie im unteren Teil auf den verlinkten Begriff «bestimmten Wörtern». Tragen Sie die Domain inklusive dem @-Zeichen ein, in unserem Beispiel @afp.com und klicken Sie auf Hinzufügen, gefolgt von OK.
Tragen Sie die Domain ein, aufgrund derer gefiltert werden soll
Quelle: PCtipp.chNach dem Klick auf Weiter aktivieren Sie im oberen Teil die Option «diese in den Ordner Zielordner verschieben». Im unteren Teil klicken Sie auf den verlinkten Begriff Zielordner. Wählen Sie den gewünschten Ordner aus, der bei mir und später im Makro PR heisst.
Die Auswahl des Ordners, in den verschoben werden soll
Quelle: PCtipp.chKlicken Sie zweimal auf Weiter, müssen Sie einen Namen für die Regel eingeben. Anstelle der vorgeschlagenen Domain nennen Sie die Regel PR01 (0 ist die Ziffer 0).
Hinweis: Sie können einen anderen Regelnamen verwenden, müssten diesen aber später im Makrocode anpassen. Sie können auch gleich dies anhaken, wenn Sie wollen: «Diese Regel jetzt auf Nachrichten anwenden, die sich bereits im Ordner Posteingang befinden».
Wählen Sie den Regelnamen PR01 oder passen Sie den Namen der Regel später im Makro an
Quelle: PCtipp.chKlicken Sie auf Fertig stellen, wird die Regel PR01 erstellt, die bereits einen Eintrag nach dem Schema hat, das wir brauchen.
Das geniale Makro – in Outlook hinzufügen
Wenn die Vorbereitungen auf der vorherigen Seite getroffen sind, haben Sie also jetzt eine Regel namens PR01, die Mails von einer bestimmten Absender-Domain automatisch in den Ordner namens PR verschiebt. Richtig?Jetzt drücken Sie Alt+F11 und gehen Sie zu Einfügen/Modul. Klicken Sie doppelt aufs links erscheinende Modul1. Fügen Sie den kompletten untenstehenden Makrocode ein.
Wichtig: Falls Ihre Regel nicht PR01 heisst oder der Ordner, in den Sie die Mails verschoben haben wollen, nicht PR heisst, ändern Sie die Bezeichnungen in den zwei Zeilen, die ich auf dem nachfolgenden Screenshot markiert habe.
Sollten Regel und Ordner bei Ihnen anders als bei mir heissen, müssen Sie diese zwei Zeilen im Makrocode noch anpassen.
Quelle: PCtipp.chKlicken Sie auf Speichern, gefolgt von Datei/Schliessen und zurück zu Outlook. Erstellen Sie rasch ein Zertifikat, wie in «Outlook: So signieren Sie Ihre Makros» beschrieben.
Öffnen Sie wieder mit Alt+F11 den VBA-Editor und klicken Sie aufs Modul1. Via Extras/Digitale Signatur wählen Sie das vorhin erstellte Zertifikat aus, klicken Sie auf OK und erneut auf OK.
Jetzt gehts erneut zu Datei/Schliessen und zurück zu Outlook. Beenden Sie Outlook via Datei-Menü und klicken Sie bei der Frage, ob das Projekt gespeichert werden soll, auf Ja.
Einstellung prüfen: Starten Sie Outlook wieder und öffnen Sie Datei/Optionen/Trust Center. Bei Einstellungen für das Trust Center gehts zu den Makroeinstellungen. Stellen Sie sicher, dass diese Option aktiviert ist: «Benachrichtigungen für digital signierte Makros. Alle anderen Makros sind deaktiviert».
Diese Einstellung erlaubt das Ausführen signierter Makros
Quelle: PCtipp.chMakroverknüpfung platzieren: Am besten blenden Sie die Leiste für den Schnellzugriff ein und platzieren Sie diese oben links. Wie das geht, steht hier: «Outlook, Word, Excel: Wohin ist die Schnellzugriffsleiste verschwunden?».
Ist die Schnellzugriffsleiste platziert, klappen Sie an deren rechtem Rand das Winkelsymbol auf und gehen Sie zu Weitere Befehle. Schalten Sie oben bei «Befehle auswählen» auf Makros um. Klicken Sie aufs Makro «Projekt1.verschieben» und befördern Sie es mittels Hinzufügen in die rechte Spalte.
Sieht noch nicht hübsch aus, aber das ändern wir gleich
Quelle: PCtipp.chSie möchten vermutlich nicht auf «Projekt1.verschieben» klicken müssen, sondern auf etwas wie «PR-Filter». Klicken Sie in der rechten Spalte auf Projekt1.verschieben und benutzen Sie unten Ändern. Überschreiben Sie den Namen mit der gewünschten Bezeichnung. Wenn Sie mögen, wählen Sie auch gleich ein anderes, gut erkennbares Icon dafür aus. Klicken Sie in beiden Fenstern auf OK. Fertig!
Benennen Sie die Verknüpfung für Ihre Schnellzugriffsleiste um und wählen Sie allenfalls ein passendes Symbol
Quelle: PCtipp.chMakro ausführen: Wenn nun eine Mail einer neuen PR-Agentur eintrifft, klicken Sie die Mail an. Anschliessend tuts ein Klick auf Ihr PR-Filter-Icon. Die Domain wird zu Ihrer PR01-Regel hinzugefügt, worauf Outlook diese Mail und alle künftigen Mails, die dieselbe Domain tragen, in den PR-Ordner verschiebt. (PCtipp-Forum)
Option ExplicitOption Base 1' Dieser Makro erweitert eine Regel zum Verschieben von Mails.' Der Domänen-Name von markierten Mails wird in die' Regel-Liste zum Verschieben aufgenommen.' Die erweiterte Regel wird 1x per Makro ausgeführt' Es gibt zwei Bedingungen:' - Der Name des Ordners, in den verschoben werden soll,' darf in der Ordnerstruktur nur 1x vorhanden sein.' - Die Regel, die in der Konstanten 'regelName' genannt ist,' muss mindestens 1 Bedingung enthalten,' dass Mails mit bestimmtem Text in der Absender-Adresse' in den angegebenen Ordner verschoben werden sollen.Sub verschieben() ' Diese zwei Konstanten nach Wunsch anpassen: Const nachOrdner As String = "PR" ' Der Ordner, in den die Mails verschoben werden Const regelName As String = "PR01" ' Der Name der Regel, die erweitert wird. Dim zielOrdner As Outlook.Folder ' Der Zielordner als Objekt Dim regeln As Outlook.Rules ' Alle Regeln als Objekt Dim absender As Variant ' Die Liste der Absender in der Regel Dim explorer As Outlook.explorer ' Der Outlook-Explorer als Objekt Dim email As Object ' Die ausgewählte(n) E-Mail(s) als Objekt Dim domäne As String ' Domäne einer Mail-Adresse Dim domänenListe As String ' Liste aller Domänen in der Regel-Liste als ein String Dim i As Integer ' Schleifen-Laufvariable Dim ordner As Outlook.Folder ' Ein Outlook-Ordner als Objekt Set explorer = Application.ActiveExplorer ' Den Outlook-Explorer holen Set ordner = explorer.CurrentFolder ' Den aktiven Outlook-Ordner holen If explorer.Selection.Count < 1 Then Exit Sub ' Wenn keine Mail ausgewählt ist, den Makro beenden Set zielOrdner = ziel(nachOrdner) ' Den Ziel-Ordner als Objekt über die Funktion 'ziel' finden If zielOrdner Is Nothing Then ' Wenn es den Ziel-Ordner nicht gibt... MsgBox "Zielordner nicht gefunden", , "Tut mir Leid" ' ...Meldung ausgeben... Exit Sub ' ...und Makro beenden End If Set regeln = Application.Session.DefaultStore.GetRules() ' Die Regeln als Objekt holen With regeln(regelName) ' Aus den Regeln die ausgewählte Regel als Objekt holen With .Conditions.SenderAddress ' Aus der ausgewählten Regel die Bedingung für Absender-Adressen als Objekt holen absender = .Address ' Die Adressenliste in ein Variablenfeld holen domänenListe = "" ' Die Domänenliste als leer initialisieren For i = 0 To UBound(absender) ' Alle Domänen in der Liste durchgehen domänenListe = domänenListe & absender(i) & "," ' Die Domänen zu einem einzigen Text zusammenbauen Next i For Each email In explorer.Selection ' Alle ausgewählten Mails durchgehen With email domäne = Mid(.SenderEmailAddress, InStr(.SenderEmailAddress, "@")) ' Die Domäne der Mail extrahieren If InStr(domänenListe, domäne & ",") = 0 Then ' Wenn die Domäne noch nicht in der Liste ist... ReDim Preserve absender(0 To UBound(absender) + 1) ' ...das Datenfeld der Domänen erweitern... absender(UBound(absender)) = domäne ' ...und die neue Domäne hinzufügen. domänenListe = domänenListe & domäne & "," ' Die neue Domäne in die Domänenliste mit aufnehmen End If End With Next email .Address = absender ' Das erweiterte Datenfeld mit den Domänen in die Adressenliste der Regel schreiben End With regeln.Save ' Alle Regeln sichern ' Die Regel einmalig ausführen. ' 1. False: Keine Fortschrittsanzeige ' ordner: Die Regel im aktuellen Ordner ausführen ' 2. False: Unterordner nicht mit berücksichtigen ' OlRuleExecuteOption.olRuleExecuteAllMessages Regel für alle Mails im Ordner anwenden, egal ob gelesen oder ungelesen .Execute False, ordner, False, OlRuleExecuteOption.olRuleExecuteAllMessages End WithEnd Sub' Die Funktion ermittelt den Hauptordner des eigenen Mail-Accounts.' Diesen Hauptordner und den Namen des gesuchten Ziel-Ordners' übergibt sie an die Funktion 'finde'' Deren Ergebnis wird zurückgegebenFunction ziel(ordner As String) As Outlook.Folder Dim start As Outlook.Folder Set start = Application.Session.DefaultStore.GetRootFolder ' Der Hauptordner des eigenen Mail-Accounts als Objekt Set ziel = finde(start, ordner) ' Aufruf der Funktion 'ziel' mit Übergabe des Hauptordnders und des ZielordnersEnd Function' Die Funktion sucht den Zielordner in der Struktur des Hauptordners' und gibt diesen als Objekt zurück' Wird er nicht gefunden, kommt 'Nothing' zurückFunction finde(of As Outlook.Folder, ordner As String) As Outlook.Folder Dim osf As Outlook.Folder ' Outlook Unterordner als Objekt Set finde = Nothing ' Das Ergebnis initialisieren For Each osf In of.Folders ' Alle Unterordner des Hauptordners bearbeiten If osf.Name = ordner Then ' Wenn der Zielordner gefunden wurde... Set finde = osf ' ...den Zielordner als Rückgabewert setzen... Exit Function ' ...und die Funktion beenden End If Set finde = finde(osf, ordner) ' Sonst die Funktion rekursiv aufrufen, mit dem Unterordner als Startpunkt. If Not finde Is Nothing Then ' Wenn etwas gefunden wurde... If finde.Name = ordner Then Exit Function '...und der Fund ist der Zielordner, Funktion beenden End If Next osfEnd Function
Kommentare