ich habe gerade ein Problem in Outlook 2016 mit einem Code den ich in Outlook 2007 erstellt habe. Laut Internet funktioniert die Anweisung
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur).Execute
seit Outlook 2010 nicht mehr. Deshalb bekomme ich auch eine Fehlermeldung wenn ich die Anweisung
Sub SchreibenDesProjekts() 'Quelle https://www.herber.de/forum/archiv/728to732/729317_Mail_aus_VBA_Formatierung.html
und https://www.herber.de/forum/archiv/1272to1276/1273406_VBA_Signatur_einfuegen.html
Dim objOutlook As Object
Dim objMail As Object
Dim strProjektNummer As String
Dim strSignatur As String
Dim strAlterEMailInhalt As String
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.ActiveInspector.CurrentItem
strSignatur = "Name-der-Signatur" ' 'Name der gespeicherten _
Signatur - bitte anpassen
strProjektNummer = "Test123"
strAlterEMailInhalt = objMail.HTMLBody
If strProjektNummer "" Then
With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = "" & "." & "" & "
" & " Projekt: " & strProjektNummer & "" & "
" & strAlterEMailInhalt 'siehe Quelle http://office-loesung.de/ftopic406835_0_0_asc.php
Farbcode siehe http://html-color-codes.info/webfarben_hexcodes/
.Display
'Mail nun Anzeigen - wichtig, damit 'GetInspector' funktioniert
'Einfügen einer bestimmten Signatur
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _
_
Execute
End With
Else
With objMail
.Display
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _
_
Execute
End With
End If
Set objOutlook = Nothing
Set objMail = Nothing
End Sub
ausführe, dann erhalte ich nämlich immer eine Fehlermeldung beim Ausführen (in der Zeile .GetInspector....Fehlermeldung:
Dieser Code soll eigentlich folgendes machen. Ich habe eine Imput-Maske in der die Projektnummer eingetragen wird (wird in Variable strProjektNummer geschrieben). Für den Test habe ich diese einfach "Test123" benannt. Diese Projektnummer soll hinter die Signatur gehängt werden. Ich habe diese so formatiert, dass diese "unsichtbar/weiß" ist. Dadurch sieht man diese im Normalfall nicht. In Outlook kann ich hiernach jedoch suchen und finde alle E-Mails zu diesem Projekt schnell wieder. In Outlook 2007 hat dies so auch wunderbar funktioniert. In die Variable strAlterEMailInhalt habe ich noch den Inhalt der E-Mail geschrieben, sodass ich beim Antworten auf eine E-Mail auch den restlichen Inhalt mitnehme.
Mit dem Umstieg geht es jedoch nicht mehr. Ich habe im Internet gelesen, dass ich in den Code einfach .GetInspector schreiben muss und dann wird die Standardsignatur eingetragen. Leider ist es nun aber so, dass die Projektnummer dadurch vor die Signatur geschrieben wird. Ich möchte die Projektnummer aber aus optischen Gründen zwingend hinter die Signatur haben. Gibt es nicht eine einfache Möglichkeit die Signatur als String in eine Variable zu schreiben? Dann kann ich diesen String nämlich an die gewünschte Stelle einfügen. Ich habe es mit objMail.GetInspector versucht. Dies hat aber nicht funktioniert.
Vielen Dank euch schon jetzt für die Hilfe. Ich wünsche euch ein schönes Wochenende wenn es soweit ist.
Gruß
Dominik