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 :
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 :
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.