web-dev-qa-db-fra.com

Modifier le type et la taille du corps de la police HTML dans VBA

J'ai un script VBA qui génère et envoie un e-mail lorsqu'un bouton VBA est inséré dans une feuille de calcul donnée. 

Le script génère actuellement le courrier électronique dans une police relativement petite. Je me demandais s’il existait un moyen de définir la police sur Calibri et le texte sur 11. 

Voici le script VBA actuel:

Private Sub CommandButton1_Click()

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim strUser As String
Dim signature As String
Dim sTo As String
Dim sCC As String
    'For To field
    Set emailRng = Worksheets("Send Email").Range("D3:I6")

    For Each cl In emailRng
        sTo = sTo & ";" & cl.Value
    Next

    sTo = Mid(sTo, 2)

    'For CC field
    Set emailRngCC = Worksheets("Send Email").Range("D8:I11")

    For Each cl In emailRngCC
        sCC = sCC & ";" & cl.Value
    Next

    sCC = Mid(sCC, 2)


Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
    With OutMail
    .Display
    End With
        signature = OutMail.HTMLBody


    strbody = "<FONT SIZE = 3>Good Morning;<p>We have completed our main aliasing process for today.  All assigned firms are complete.  Please feel free to respond with any questions.<p>Thank you."

    With OutMail
        .SentOnBehalfOfName = ""
        .To = sTo
        .CC = sCC
        .BCC = ""
        .Subject = "Data Morning Alias Process - COMPLETE"
        .HTMLBody = strbody & signature
        .Display
    End With
End Sub

Je sais que cette partie du code:

strbody = "<FONT SIZE = 3.5>Good Morning;<p>We have completed our main aliasing

est la partie qui concerne la taille du texte du corps de l'e-mail. Mais un réglage de 3 est trop petit et un réglage de 4 est trop grand. Je me demandais donc si je pouvais définir la police de manière à avoir exactement la taille 11 et le texte à formater comme Calibri?

Je vous remercie!

7
user2993456

J'ai fait une petite recherche et j'ai pu écrire ce code:

strbody = "<BODY style=font-size:11pt;font-family:Calibri>Good Morning;<p>We have completed our main aliasing process for today.  All assigned firms are complete.  Please feel free to respond with any questions.<p>Thank you.</BODY>"

apparemment en définissant le "font-size=11pt" au lieu de définir la taille de la police <font size=5>, Il vous permet de sélectionner une taille de police spécifique, comme vous le feriez normalement dans un éditeur de texte, par opposition à une valeur de 1 à 7 telle que mon code était à l'origine. 

Ce link de simPLE MAn m'a donné de bonnes informations.

15
user2993456

Pour info, j’ai aussi fait une petite recherche et si le nom de la famille de fontes que vous souhaitez appliquer contient des espaces (à titre d’exemple, je prend Gill Alt One MT Light), vous devriez écris-le de cette façon: 

strbody= "<BODY style=" & Chr(34) & "font-family:Gill Alt One MT Light" & Chr(34) & ">" & YOUR_TEXT & "</BODY>"
0
Seb

Définissez des textes avec différentes tailles et styles, ainsi que des tailles et styles pour les textes de cellules (avec Range)

Sub EmailManuellAbsenden()

Dim ghApp As Object
Dim ghOldBody As String
Dim ghNewBody As String

Set ghApp = CreateObject("Outlook.Application")
With ghApp.CreateItem(0)
.To = Range("B2")
.CC = Range("B3")
.Subject = Range("B4")
.GetInspector.Display
 ghOldBody = .htmlBody

 ghNewBody = "<font style=""font-family: Calibri; font-size: 11pt;""/font>" & _
 "<font style=""font-family: Arial; font-size: 14pt;"">Arial Text 14</font>" & _
 Range("B5") & "<br>" & _
 Range("B6") & "<br>" & _
 "<font style=""font-family: Chiller; font-size: 21pt;"">Ciller 21</font>" &
 Range("B5")
 .htmlBody = ghNewBody & ghOldBody

 End With

End Sub
'Fill B2 to B6 with some letters for testing
'"<font style=""font-family: Calibri; font-size: 15pt;""/font>" = works for all Range Objekts
0
Günter