Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Outlook-Signatur in String speichern

Outlook-Signatur in String speichern
22.03.2019 12:13:45
Dominik
Hallo Ihr,
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: Userbild
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

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

Betreff
Datum
Anwender
Anzeige
AW: Outlook-Signatur in String speichern
22.03.2019 12:27:52
Luschi
Hallo Dominik,
nicht ganz sauber recherchiert, Deine Varaiante läuft ab Outlook 2013 nicht mehr.
Wie ich es macher, kannst Du hier nachlesen:
https://www.herber.de/forum/messages/1682015.html
Gruß von Luschi
aus klein-Paris
AW: Outlook-Signatur in String speichern
22.03.2019 13:29:54
Dominik
Hallo Luschi,
vielen Dank für die schnelle Antwort. Damit bin ich weitergekommen. Mein Code sieht nun wie folgt aus.

Sub SchreibenDesProjekts()
Dim objOutlook As Object
Dim objMail As Object
Dim strProjektNummer As String
Dim strSignatur  As String
Dim strNameSignatur As String
Dim strAlterEMailInhalt As String
strNameSignatur = "Name der Signatur" 'Name der Signatur
strSignatur = Environ("appdata") & "\Microsoft\Signatures\" & strNameSignatur & ".htm" ' _
Pfad der Signatur
strSignatur = CreateObject("Scripting.FileSystemObject").GetFile(strSignatur). _
OpenAsTextStream(1, -2).ReadAll 'Signatur als String
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.ActiveInspector.CurrentItem
strProjektNummer = OeffnenInputBox 'separate Function mit der Eingabemaske
strAlterEMailInhalt = objMail.HTMLBody
If strProjektNummer  "" Then
With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = strSignatur & "font face=Arial size=3 color=#1F497D>" & "." & "/font>" & _
"br>" & "font face=Arial size=3 px color=#FFFFFF> Projekt: " & strProjektNummer & "/font>" & "br>" & strAlterEMailInhalt 'das "
Damit funktioniert das ganze wieder einwandfrei. Vielen Dank. ich wünsche allen ein schöne Wochenende.
Gruß
Dominik
Anzeige
AW: Outlook-Signatur in String speichern
22.03.2019 14:01:12
Luschi
Hallo Dominik,
noch nicht ganz perfekt. da Du mit der Outlook-Konstanten 'olFormatHTML' arbeitest, ist bei Dir immer noch der Vba-Verweis auf Outlook gesetzt, dieser Befehl:
Set objOutlook = CreateObject("Outlook.Application") benötigt diesen Verweis nicht, also weg damit und statt 'olFormatHTML' verwendest Du den numerischen Wert '2'
.BodyFormat = 2
Gruß von Luschi
aus klein-Paris
PS: Solltest Du mal in die Signatur eine Grafik einbinden (Firmenlogo oder andere Bildchen), dann findest Du die Lösung auch in meinem Beispiel!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige