如何修改VBA代码为Outlook邮件文本添加加粗和下划线格式
解决VBA生成Outlook邮件时HTML标签不生效的问题
核心问题是你当前代码可能用了邮件的Body属性(纯文本/富文本模式),导致HTML标签被当成普通文本显示。只需切换到HTML格式并使用HTMLBody属性加载带标签的内容即可解决,具体操作如下:
修改要点
- 显式设置邮件格式为HTML:通过
BodyFormat = olFormatHTML(或直接赋值HTMLBody,Outlook会自动切换格式,显式设置更稳妥) - 用
HTMLBody属性替代Body属性,存放包含<b>(加粗)、<u>(下划线)等HTML标签的内容
修改后的完整代码示例
Sub SendFormattedOutlookEmail() Dim objOutlook As Object Dim objMail As Object Dim strHTMLContent As String ' 初始化Outlook对象 Set objOutlook = CreateObject("Outlook.Application") Set objMail = objOutlook.CreateItem(0) ' 0代表创建普通邮件 ' 构建带HTML格式的邮件内容 strHTMLContent = "<p>您好:</p>" & _ "<p>请关注 <b><u>这部分需要加粗下划线的关键内容</u></b></p>" & _ "<p>普通文本内容示例,这里没有格式。</p>" & _ "<p>另一个示例:<u>仅下划线文本</u> | <b>仅加粗文本</b></p>" With objMail .To = "收件人邮箱@example.com" .CC = "抄送人邮箱@example.com" .Subject = "带格式的通知邮件" .BodyFormat = olFormatHTML ' 强制设置为HTML格式 .HTMLBody = strHTMLContent ' 赋值HTML格式内容 .Display ' 预览邮件,如需直接发送替换为.Send End With ' 释放对象 Set objMail = Nothing Set objOutlook = Nothing End Sub
注意事项
- 确保使用标准HTML标签:比如
<b>/<strong>实现加粗,<u>实现下划线,段落用<p>,换行用<br> - 如果是后期绑定(未引用Outlook对象库),
olFormatHTML可以用数值2代替,即.BodyFormat = 2 - 若需要混合原有文本内容,需将纯文本中的换行符(
vbCrLf)替换为<br>,否则HTML中不会自动换行
内容的提问来源于stack exchange,提问作者MEC
相关产品推荐
相关产品推荐

