web-dev-qa-db-ja.com

VBAでHTMLメール本文のフォントタイプとサイズを変更する

特定のワークシートでVBAボタンが押されたときに生成および電子メールで送信するVBAスクリプトがあります。

スクリプトは現在、比較的小さなフォントで電子メールを生成します。フォントをCalibriに設定し、テキストを正確に11に設定する方法があるかどうか疑問に思っていました。

現在のVBAスクリプトは次のとおりです。

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

私はコードのこの部分を知っています:

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

メール本文のテキストサイズに関連する部分です。ただし、3の設定は小さく、4の設定は大きすぎます。それで、フォントを正確にサイズ11に設定し、テキストをCalibriとしてフォーマットする方法があるのではないかと思っていました。

ありがとうございました!

8
user2993456

私は少し調べて、このコードを書くことができました。

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>"

明らかに"font-size=11pt"フォントサイズを設定する代わりに<font size=5>、これは、私のコードが元々持っていたように1-7から値を選択するのとは対照的に、テキストエディタで通常するように特定のフォントサイズを選択することを可能にします。

このlinksimpLE MAnからいくつかの良い情報が得られました。

19
user2993456

参考までに、私も少し調査を行い、適用したいフォントファミリの名前がスペースを含む(例としてGill Alt One MT Light)、このように書く必要があります:

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

さまざまなサイズとスタイルのテキストを設定し、セルのテキストのサイズとスタイルを設定します(範囲付き)

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