Verschlagwortet: Outlook VBA Makro Menüband
- This topic has 1 Antwort, 2 Stimmen, and was last updated 08:22 um 21. März 2024 by Mailhilfe.
- AutorBeitrag
- 20. März 2024 um 22:13 #1030914Maximilian FranzParticipant
Hallo,
erstmal vielen Dank für guten Tutorial Clips auf Youtube.
Auf meiner Website habe ich ein Kontaktformular eingebaut. Die Kontaktanfragen werden mittels eines E-Mail-Alias (mail@acme.de) an meine E-Mail-Adresse info@acme.de geschickt.
Diese Mail haben immer den gleichen Aufbau der sich aus den Feldern des Kontaktformulars (Name, E-Mail, Telefon, Nachricht) ergibt:
Name: Name
E-Mail: beispiel@beispiel.de
Telefon: 0123456789
Nachricht: Beispielnachricht
Da der Absender der Nachricht meine eigener Alias mail@acme.de ist, kann ich nicht die normale Antworten Funktion in Outlook benutzen. Um eine Anfrage zu beantworten muss die E-Mail-Adresse aus der Nachricht in einer neue erstellten Nachricht in den Empfänger kopiert werden.
Zur Beantwortung der Anfragen habe ich ein VBA Makro erstellt, dass den Text der Anfragemail mittels regulären Ausdrücken zerlegt und eine Antwortmail generiert.
Public Sub ReplyContactForm()
Dim SelectedMail As Outlook.MailItem
Dim ReplyMail As Outlook.MailItem
Dim stBody As String
Dim stName As String
Dim stEmail As String
Dim stMessage As String
Dim ReceivedDateTime As Date
Dim length As Integer
Dim regex As RegExp
Dim matches As MatchCollection
Dim match As matchIf Application.ActiveExplorer.Selection.Count > 0 Then
If TypeOf Application.ActiveExplorer.Selection.Item(1) Is Outlook.MailItem ThenSet SelectedMail = Application.ActiveExplorer.Selection.Item(1)
ReceivedDateTime = SelectedMail.ReceivedTime‘Prüfen, ob die Mail tatsächlich vom Kontaktformular kommt
If SelectedMail.SenderEmailAddress = “mail@acme.de” Then‘Auslesen der Kontaktformulardaten
stBody = Trim(SelectedMail.Body)
Set regex = New RegExp
With regex
.IgnoreCase = True
.MultiLine = True
.Global = False
.Pattern = “Name: .+”
End WithIf regex.Test(stBody) Then
Set matches = regex.Execute(stBody)
For Each match In matches
length = Len(Trim(match.Value))
stName = Mid(Trim(match.Value), 7, length – 7)
Next match
Else
MsgBox “Keinen Namen gefunden.”
End Ifregex.Pattern = “E-Mail: .+”
If regex.Test(stBody) Then
Set matches = regex.Execute(stBody)
For Each match In matches
length = Len(Trim(match.Value))
stEmail = Mid(Trim(match.Value), 9, length – 9)
Next match
Else
MsgBox “Keinen E-Mail gefunden.”
End Iflength = Len(stBody)
stMessage = Mid(stBody, InStr(1, stBody, “Nachricht: “, vbTextCompare) + 11)‘Erstellen der Antwortnachricht
Set ReplyMail = Outlook.Application.CreateItem(olMailItem)With ReplyMail
.To = stEmail
.Subject = “AW: Anfrage vom ” & ReceivedDateTime
.Body = “Hallo ” & stName & “,” & vbCrLf & vbCrLf & vbCrLf & vbCrLf & “Freundliche Grüße”
.Display
End WithElse
MsgBox “Bitte wähle eine E-Mail vom Kontaktformular der Website aus.”
End If
Else
MsgBox “Bitte wähle eine E-Mail aus.”
End If
Else
MsgBox “Bitte wähle eine E-Mail aus.”
End IfSet SelectedMail = Nothing
Set ReplyMail = NothingEnd Sub
Dieses Makro funktioniert im Makro Editor in Einzelschritten und in der direkten Ausführung (F5). Nun möchte ich das Makro als Funktion im Menüband hinterlegen. Dabei habe ich mich an die Vorgehensweise im Youtube Clip youtube.com/watch?v=QEjpSI_1PqA gehalten. Leider tut sich aber gar nichts, wenn man auf die Schaltfläche clickt.
Was mache ich falsch?
21. März 2024 um 08:22 #1030915MailhilfeKeymasterEs gibt mehrere Gründe, warum ein Makro, das im VBA-Editor funktioniert, sich nicht über das Menüband starten lässt. Hier sind einige Schritte, die Sie überprüfen können, um das Problem zu lösen:
1. Sicherheitseinstellungen überprüfen
Stellen Sie sicher, dass die Makrosicherheitseinstellungen in Outlook so gesetzt sind, dass Makros mit Benachrichtigung oder alle Makros (nicht empfohlen, außer Sie vertrauen allen Makros) ausgeführt werden können. Dies können Sie unter
Datei
>Optionen
>Trust Center
>Einstellungen für das Trust Center
>Makroeinstellungen
anpassen.2. Korrektes Hinzufügen des Makros zum Menüband
Die genaue Vorgehensweise, um ein Makro zum Menüband hinzuzufügen, kann je nach Version von Outlook variieren. Grundsätzlich sollten Sie jedoch folgende Schritte befolgen:
- Verwenden Sie das
Customize Ribbon
-Feature, um eine neue Gruppe im Menüband zu erstellen oder eine bestehende zu bearbeiten. - Wählen Sie
Makros
im Dropdown-MenüWählen Sie Befehle aus
. - Finden Sie Ihr Makro in der Liste und fügen Sie es zur gewünschten Gruppe hinzu.
Vergewissern Sie sich, dass Sie alle Schritte genau wie im Tutorial durchgeführt haben. Manchmal kann ein kleiner Unterschied in einem der Schritte dazu führen, dass das Makro nicht korrekt hinzugefügt wird.
Hier gibt es dazu noch einen Beitrag:Wie kann ich eine Outlook Regel als Knopf ins Menüband bekommen?
3. Namen des Makros
Stellen Sie sicher, dass der Name des Makros keine Leerzeichen oder Sonderzeichen enthält, die möglicherweise nicht unterstützt werden, wenn es zum Menüband hinzugefügt wird. Es ist eine gute Praxis, einfache und eindeutige Namen zu verwenden.
4. Kompatibilitätsprobleme
Es kann vorkommen, dass bestimmte Anpassungen des Menübands in neueren Versionen von Outlook oder aufgrund von Updates nicht wie erwartet funktionieren. Überprüfen Sie, ob es bekannte Probleme mit Ihrer Outlook-Version gibt.
5. Neustart von Outlook
Nachdem Sie Änderungen am Menüband vorgenommen haben, ist es oft notwendig, Outlook neu zu starten, damit die Änderungen wirksam werden.
Falls Sie nach all diesen Schritten immer noch Schwierigkeiten haben, Ihr Makro zum Laufen zu bringen, könnten Sie detailliertere Fehlermeldungen oder das Verhalten von Outlook nach dem Klicken auf die Schaltfläche im Menüband überprüfen. Manchmal können spezifische Fehlermeldungen oder Verhaltensweisen Hinweise auf die Ursache des Problems geben.
- Verwenden Sie das
- AutorBeitrag