VBA Outlook : Définir ou modifier la police et la taille de la police d’un e-mail

VBA - Visual Basic for Application

VBA peut être utilisé pour de merveilleuses simplifications de travail dans le monde de Microsoft Office et on ne peut qu’espérer que Microsoft n’abolisse jamais VBA. Supposons que vous ayez créé un script VBA pour générer automatiquement un courriel ou répondre automatiquement à un courriel. Bien entendu, dans ce cas, vous souhaitez formater un peu l’e-mail selon vos souhaits et, par exemple, modifier la taille ou le type de police. Deux possibilités s’offrent à vous. Cela dépend si vous souhaitez que votre e-mail soit formaté au format HTML ou au format texte enrichi.

Configuration de la police et de la taille de la police à l’aide de HTML

Le script de création d’un nouvel e-mail se présente comme suit. Assurez-vous que olFormatPlain n’est pas assigné à cette propriété, mais olFormatHTML. Dans ce cas, le courrier est formaté à l’aide de HTML, ce qui offre une liberté maximale dans la conception du texte.

Public Sub NewMailWithSpecificFontSize()
    Dim olItem As Outlook.MailItem
   
    Set olItem = Application.CreateItem(olMailItem)
    
    With olItem
         .to = "john.doe@my-domain.de"
         .subject = "In urgent matter"
         .BodyFormat = olFormatHTML
         .HTMLBody = "<BODY style=font-size:20pt;font-family:Calibri><p>Hello,</p><p>I am contacting you on urgent matter XY!</p><p>Yours sincerely,<br>Frederike van Sanghausen</p></BODY>"
         .display
    End With

    Set olItem = Nothing
End Sub

Dans ce cas, vous pouvez ajouter des styles CSS pour modifier automatiquement la police et la taille de la police. Dans l’exemple de code ci-dessus, la taille de la police dans le texte HTML a été fixée à 20pt, ce qui est assez important.
Body, sinon vous verrez le code HTML dans l’e-mail lui-même. Le code HTML doit être assigné à la propriété HTMLBody.

Si vous exécutez la macro, l’e-mail se présentera comme suit :

Capture d'écran d'un courriel Outlook créé avec une macro VBA au format HTML. Les propriétés de la police et de la taille de la police ont été définies.
Police et taille de la police définies via le code de style HTML/CSS

Réglage de la police et de la taille de la police dans le format texte enrichi

Outlook offre également la possibilité de formater les courriels en texte enrichi. Dans ce cas, vous pouvez également personnaliser la police et la taille de la police comme vous le souhaitez. Le code VBA pour cela ressemble à ceci :

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 = "john.doe@my-domain.de"
         .subject = "In urgent matter"
         .bodyFormat = olFormatRichText
         .body = "Hello," & vbCrLf & vbCrLf & "I am contacting you on urgent matter XY!" & vbCrLf & vbCrLf & "Yours sincerely," & vbCrLf & "Frederike van 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

Vous pouvez constater que vous devez créer un objet document Word (wdDoc) pour pouvoir appliquer la mise en forme du texte enrichi. Ce n’est qu’ensuite que vous avez accès aux propriétés Font.Name et Font.Size. L’objet email (olItem) lui-même n’offre pas ces propriétés.

Le résultat ressemble alors à l’image ci-dessous :

Capture d'écran de l'e-mail généré automatiquement dans lequel la taille et la police ont été automatiquement ajustées en utilisant le format texte riche
La macro génère un e-mail au format texte riche avec une police et une taille de police définies

Si vous utilisez le format olFormatPlain comme formatage, le courrier électronique est formaté comme un document de texte brut. Dans ce cas, il n’est pas possible de formater le texte de l’e-mail. Mais cela peut aussi suffire dans certains cas.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *