You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

注意事项

  1. 确保使用标准HTML标签:比如<b>/<strong>实现加粗,<u>实现下划线,段落用<p>,换行用<br>
  2. 如果是后期绑定(未引用Outlook对象库),olFormatHTML可以用数值2代替,即.BodyFormat = 2
  3. 若需要混合原有文本内容,需将纯文本中的换行符(vbCrLf)替换为<br>,否则HTML中不会自动换行

内容的提问来源于stack exchange,提问作者MEC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:02:15