Outlook通过Excel VBA生成邮件:字体大小失效及vbTab无效问题求助
问题解决:Outlook邮件HTML正文字体大小与缩进问题
一、字体大小显示异常的修复
你遇到的字体大小偏差,是因为HTML里<font>标签的size属性是相对单位(对应1-7级,默认基准是3对应12pt),并非直接对应磅值。要设置精确的字体大小,直接用CSS的font-size属性指定绝对磅值即可,同时修正原代码里<font>标签的语法错误(font color写法不符合规范)。
二、制表符无法生效的修复
因为你用的是HTMLBody,纯文本的vbTab和vbCrLf在HTML里不会被解析成制表符和换行,需要换成HTML专属的格式标签:
- 换行用
<br>替代vbCrLf - 开头缩进可以用多个
(非换行空格),或者用CSS样式设置左外边距
修改后的完整代码
Sub Send_Email() Dim objOutlookApp As New Outlook.Application Dim myEmail As Outlook.MailItem Set myEmail = objOutlookApp.CreateItem(olMailItem) myEmail.BodyFormat = olFormatHTML myEmail.Display Dim Strbody As String ' 用<br>换行, 实现缩进,style指定精确字体大小 Strbody = "<h5>Dears,</h5>" & "<br>" & _ " <span style='font-family:Times New Roman; font-size:12pt; color:Brown;'>This a test string</span>" myEmail.HTMLBody = Strbody & myEmail.HTMLBody End Sub
额外说明
- 如果需要更大的缩进,可以增加
的数量,或者把<span>换成<p>标签,用style="margin-left:2em;"来设置更灵活的缩进 - 字体大小可以根据需求调整,比如
10pt、14pt等,都是精确的磅值
内容的提问来源于stack exchange,提问作者Peace
相关产品推荐
相关产品推荐

