VBA Outlook: Schriftart und Schriftgröße einstellen/ändern

VBA - Visual Basic for Application

VBA kann für wundervolle Arbeitserleichterungen in der Microsoft-Office-Welt genutzt werden und man kann nur hoffen, dass Microsoft VBA nie abschafft. Nehmen wir mal an, Sie haben sich ein VBA-Skript erstellt, um automatisch eine E-Mail zu erzeugen oder automatisch auf eine E-Mail zu antworten.  Natürlich will man in einem solchen Fall die E-Mail noch etwas nach seinen Wünschen formatieren und z.B. die Schriftgröße oder Schriftart ändern. Es gibt hier zwei Varianten, die sich anbieten. Dies hängt davon ab, ob man seine E-Mail im HTML-Format formatiert haben möchte oder lieber im Rich-Text-Format.

Mittels HTML Schriftart und Schriftgröße einstellen

Das Skript zum Erzeugen einer neuen E-Mail sieht wie folgt aus. Hier muss man darauf achten, dass nicht olFormatPlain dieser Eigenschaft zugewiesen ist, sondern olFormatHTML. In diesem Fall wird die Mail dann nämlich mittels HTML formatiert, was maximale Freiheit bei der Gestaltung des Textes liefert.

Public Sub NewMailWithSpecificFontSize()
    Dim olItem As Outlook.MailItem
   
    Set olItem = Application.CreateItem(olMailItem)
    
    With olItem
         .To = "max.mustermann@my-domain.de"
         .subject = "In dringender Angelegenheit"
         .BodyFormat = olFormatHTML
         .HTMLBody = "<BODY style=font-size:20pt;font-family:Calibri><p>Hallo,</p><p>Ich kontaktiere Sie in der dringenden Angelegenheit XY!</p><p>Hochachtungsvoll,<br>Frederike von Sanghausen</p></BODY>"
         .Display
    End With

    Set olItem = Nothing
End Sub

In diesem Fall kann man nämlich CSS-Syles einbauen, um die Schriftart und Schriftgröße automatisch zu ändern. In dem Code-Beispiel oben wurde die Schriftgröße innerhalb des HTML-Textes auf 20pt eingestellt, was recht groß ist.
Wichtig: Der Text darf nicht der Eigenschaft Body zugewiesen werden, sonst sieht man den HTML-Code in der Mail selbst. Der HTML-Code muss der Eigenschaft HTMLBody zugewiesen werden.

Führt man das Makro aus, dann sieht die E-Mail so aus:

Screenshot Outlook-Email mit VBA-Macro erstellt im HTML-Format. Dabei wurden Eigenschaften der Schriftart und Schriftgröße gesetzt.
Schriftart und Schriftgröße eingestellt über HTML-/CSS-Style Code

Im Rich-Text-Format Schriftart und Schriftgröße anpassen

Outlook bietet noch die alternative Möglichkeit, dass E-Mails als Rich-Text formatiert werden. Hier kann man dann auch die Schriftart und Schriftgröße nach seinen Wünschen anpassen. Der VBA-Code dafür sieht wie folgt aus:

Public Sub NewMailWithSpecificFontSize2()
    Dim olItem As Outlook.MailItem
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdRange As Object
   
    Set olItem = Application.CreateItem(olMailItem)
    
    With olItem
         .To = "max.mustermann@my-domain.de"
         .subject = "In dringender Angelegenheit"
         .BodyFormat = olFormatRichText
         .body = "Hallo," & vbCrLf & vbCrLf & "Ich kontaktiere Sie in der dringenden Angelegenheit XY!" & vbCrLf & vbCrLf & "Hochachtungsvoll," & vbCrLf & "Frederike von Sanghausen"
         
         Set wdApp = .GetInspector
         Set wdDoc = wdApp.WordEditor
         Set wdRange = wdDoc.Range
         wdRange.WholeStory
         With wdRange
            .Font.Name = "Arial Rounded MT Bold"
            .Font.Size = 16.5
         End With
         
         .Display
    End With

    Set olItem = Nothing
End Sub

Man sieht, dass man, um die Rich-Text-Formatierungen vornehmen zu können, man ein Objekt eines Word-Dokument (wdDoc) erzeugen muss. Erst dann hat man Zugriff auf die Eigenschaften Font.Name und Font.Size. Das E-Mail-Objekt (olItem) selbst bietet diese Eigenschaften nicht.

Das Ergebnis sieht dann wie im nachfolgenden Bild aus:

Screenshot der automatisch erzeugten E-Mail, in der Schriftgröße und Schrift automatisch angepasst wurden unter Verwendung des Rich-Text-Formats
Makro erzeugt E-Mail im Rich-Text-Format mit eingestellter Schriftart und Schriftgröße

Verwendet man das olFormatPlain als Formatierung, dann bekommt man die E-Mail als reines Textdokument formatiert. In diesem Fall hat man keine Möglichkeit, den Text der E-Mail zu formatieren. Aber auch das kann ja in manchen Fällen ausreichend sein.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert