这是我的代码。
Dim str1 As String
Dim str2 As String
Dim str3 As String
Dim str4 As String
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)
olMail.To = reviewer_email_id
olMail.Subject = "Task for Review"
olMail.BodyFormat = olFormatHTML
str1 = "Dear Mr. " & reviewer & ", " & vbNewLine & vbNewLine & "Please see below details for review (Workbook attached)." & vbNewLine & vbNewLine
str2 = "Task : " & title & vbNewLine & "Location : " & document_location & vbNewLine & "Start Date : " & start_date & vbNewLine & "End Date : " & end_date & vbNewLine & vbNewLine
str3 = "Await your Feedback." & vbNewLine & vbNewLine
str4 = "Regards " & vbNewLine & assigned_to
olMail.HTMLBody = "<BODY style=font-size:10pt;font-family:Verdana>str1 + str2 + str3 + str4</BODY>"
olMail.send
发送此电子邮件时,它会输出 str1 + str2 + str3 + str4 作为大小为10的Verdana字体的输出。当我删除正文标记并更改olMail.HTMLBody
时到olMail.Body
,它打印str1,str2,str3&amp;的值。 str4但没有更多的字体大小和家庭变化。
我想打印存储在str1,str2,str3和amp;中的值。 str4,不是变量名,但也想改变font-family和size。
是否可以更改olMail.Body
的字体大小和字体系列?
我使用&
连接的变量是我从excel表中获得的值。它完美地工作正常。只想将font-size和font-family分别更改为10和Verdana。
感谢。
答案 0 :(得分:1)
问题是由于不将变量放在双引号之外来获取它们的值。
输入:
"<tag>str1 + str2</tag>"
输出:
<tag>str1 + str2</tag>
为了在邮件正文中获取变量(str1,str2,...)的值并保持格式化,您必须这样做:
Dim str1 as String, str2 as string, str3 as String, str4 as String
str1 = "value1 "
str2 = "value2 "
str3 = "value3 "
str4 = "value4"
olMail.HTMLBody = "<BODY style=font-size:10pt;font-family:Verdana>" & str1 + str2 + str3 + str4 & "</BODY>"
将产生:
<BODY style=font-size:10pt;font-family:Verdana>value1 value2 value3 value4</BODY>
在Win10和Outlook 2016上测试过。