Gaby Salvisberg
Super-Moderator
Hallo alle
Erste Frage: Wie schaffe ich es, in Outlook überhaupt ein eigenes Makro laufen zu lassen? Es heisst stets "Die Makros in diesem Projekt sind deaktiviert", auch wenn ich im Trust Center testhalber auf "Alle zulassen" schalte. [edit] Diese Frage ist mit https://www.howto-outlook.com/howto/selfcert.htm beantwortet. Makro wirft aber immer wieder Fehler aus, die der Bot unzureichend korrigiert
Die zweite Frage: Das Makro, das ich ausprobieren wollte, war das folgende.
Ausgangslage: Ich habe in Outlook eine Filterregel namens PR01, die Mails von bestimmten Domains beim Eintreffen automatisch in einen Ordner namens PR verschiebt. Darin habe ich beim Filterkriterium "Mit (Zeichenfolge) in der Absenderadresse" bereits mehrere Domains eingetragen. Ich will nicht Dutzende verschiedene Regeln, die alle dasselbe tun (Grund: hier). Das manuelle Nachtragen einer einzelnen Domain in einer bestehenden Regel ist aber unglaublich kompliziert: Ich muss mühselig mit mehreren Klicks die Domain aus der Mail herausfriemeln, die Regel bearbeiten, dort die Domain einfügen, zweimal auf Weiter klicken, das Kästchen für "jetzt ausführen" anhaken und Fertigstellen.
Mir schwebt ein VBA-Makro vor, das folgendes tut: Wenn beim Ausführen des Makros eine Mail markiert ist, soll es die Domain dieser Mail inkl. @-Zeichen aus der Absenderadresse kopieren. Anschliessend soll das Makro die bestehende Filterregel namens PR01 bearbeiten und dort die Domain im Kriterium "Mit (Zeichenfolge) in der Absenderadresse" hinzufügen und die Regel auch gleich einmal ausführen.
Weil ich verschiedentlich gelesen habe, dass ChatGPT bei Code-Fragen gar nicht mal so schlecht sei, habe ich ihm die obige Aufgabe gestellt. Nachfolgend der Code, den mir ChatGPT vorgeschlagen hat. In meinen Code-Laien-Augen sieht das plausibel aus und sollte beim Ausprobieren wohl auch nichts beschädigen. Oder übersehe ich da was? Es kann aber auch sein, dass ChatGPT irgendwelches Zeug erfunden hat, das es in Outlook so gar nicht gibt.Ausprobieren kann ich es nicht, weil: siehe "Erste Frage".
Dritte Frage: Falls das mit dem Makro nichts wird, wie könnte ich die Aufgabe aus "Frage zwei, Ausgangslage" dennoch vereinfachen?
Bin gespannt, ob jemand von euch eine sinnvolle Idee hat.
Herzliche Grüsse
Gaby
Erste Frage: Wie schaffe ich es, in Outlook überhaupt ein eigenes Makro laufen zu lassen? Es heisst stets "Die Makros in diesem Projekt sind deaktiviert", auch wenn ich im Trust Center testhalber auf "Alle zulassen" schalte. [edit] Diese Frage ist mit https://www.howto-outlook.com/howto/selfcert.htm beantwortet. Makro wirft aber immer wieder Fehler aus, die der Bot unzureichend korrigiert
Die zweite Frage: Das Makro, das ich ausprobieren wollte, war das folgende.
Ausgangslage: Ich habe in Outlook eine Filterregel namens PR01, die Mails von bestimmten Domains beim Eintreffen automatisch in einen Ordner namens PR verschiebt. Darin habe ich beim Filterkriterium "Mit (Zeichenfolge) in der Absenderadresse" bereits mehrere Domains eingetragen. Ich will nicht Dutzende verschiedene Regeln, die alle dasselbe tun (Grund: hier). Das manuelle Nachtragen einer einzelnen Domain in einer bestehenden Regel ist aber unglaublich kompliziert: Ich muss mühselig mit mehreren Klicks die Domain aus der Mail herausfriemeln, die Regel bearbeiten, dort die Domain einfügen, zweimal auf Weiter klicken, das Kästchen für "jetzt ausführen" anhaken und Fertigstellen.
Mir schwebt ein VBA-Makro vor, das folgendes tut: Wenn beim Ausführen des Makros eine Mail markiert ist, soll es die Domain dieser Mail inkl. @-Zeichen aus der Absenderadresse kopieren. Anschliessend soll das Makro die bestehende Filterregel namens PR01 bearbeiten und dort die Domain im Kriterium "Mit (Zeichenfolge) in der Absenderadresse" hinzufügen und die Regel auch gleich einmal ausführen.
Weil ich verschiedentlich gelesen habe, dass ChatGPT bei Code-Fragen gar nicht mal so schlecht sei, habe ich ihm die obige Aufgabe gestellt. Nachfolgend der Code, den mir ChatGPT vorgeschlagen hat. In meinen Code-Laien-Augen sieht das plausibel aus und sollte beim Ausprobieren wohl auch nichts beschädigen. Oder übersehe ich da was? Es kann aber auch sein, dass ChatGPT irgendwelches Zeug erfunden hat, das es in Outlook so gar nicht gibt.
Code:
Sub UpdateFilterRuleAndRun()
Dim olApp As Outlook.Application
Dim olExplorer As Outlook.Explorer
Dim olSelection As Outlook.Selection
Dim olItem As Object
Dim olRule As Outlook.Rule
Dim olCondition As Outlook.Condition
Dim domain As String
' Outlook-Anwendung und aktiven Explorer erhalten
Set olApp = Outlook.Application
Set olExplorer = olApp.ActiveExplorer
' Aktuelle Auswahl im Explorer erhalten
Set olSelection = olExplorer.Selection
' Überprüfen, ob eine E-Mail markiert ist
If olSelection.Count = 1 Then
Set olItem = olSelection.Item(1)
' E-Mail-Domain aus der Absenderadresse extrahieren
domain = GetDomainFromAddress(olItem.SenderEmailAddress)
' Filterregel PR01 suchen
For Each olRule In olApp.Session.DefaultStore.GetRules()
If olRule.Name = "PR01" Then
' Bedingung zur Filterregel hinzufügen
Set olCondition = olRule.Conditions.SenderAddress
olCondition.Text = olCondition.Text & " " & domain
' Regel speichern und ausführen
olRule.Execute ShowProgress:=True
Exit For
End If
Next olRule
End If
End Sub
Function GetDomainFromAddress(emailAddress As String) As String
Dim atIndex As Long
' Position des @-Zeichens in der E-Mail-Adresse finden
atIndex = InStr(emailAddress, "@")
' Domain extrahieren
GetDomainFromAddress = Mid(emailAddress, atIndex + 1)
End Function
Dritte Frage: Falls das mit dem Makro nichts wird, wie könnte ich die Aufgabe aus "Frage zwei, Ausgangslage" dennoch vereinfachen?
Bin gespannt, ob jemand von euch eine sinnvolle Idee hat.
Herzliche Grüsse
Gaby
Zuletzt bearbeitet: