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

如何在Outlook 2016/Office365中设置AppointmentItem的BodyFormat?

解决AppointmentItem转换为纯文本格式的问题

嘿,我明白你的困扰——Outlook的AppointmentItem确实没有像MailItem那样的BodyFormat属性,不过咱们有两种可靠的方法来完成格式转换,不管是Outlook 2016还是Office 365都适用:

方法一:手动转换(单个约会)

如果你只需要处理少数几个约会,直接在Outlook界面操作就行:

  • 打开目标约会
  • 切换到顶部的格式文本选项卡
  • 在「格式」组里,选择纯文本选项
  • Outlook会自动将原HTML格式的正文转换为纯文本,保存约会即可

方法二:VBA批量转换(多个约会)

如果需要批量处理大量约会,用VBA脚本效率更高。这里我们借助Word对象来完成HTML到纯文本的转换(因为Outlook本身没有内置的HTML转纯文本函数):

Sub BatchConvertAppointmentsToPlainText()
    Dim objSelection As Selection
    Dim objAppt As AppointmentItem
    Dim objWord As Object
    Dim objDoc As Object
    Dim plainTextContent As String
    Dim i As Integer
    
    ' 获取当前选中的所有约会
    Set objSelection = Application.ActiveExplorer.Selection
    
    ' 检查是否选中了约会
    If objSelection.Count = 0 Then
        MsgBox "请先选中至少一个约会!", vbExclamation
        Exit Sub
    End If
    
    ' 初始化Word对象(后台运行,不显示界面)
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = False
    
    ' 遍历每个选中的约会
    For i = 1 To objSelection.Count
        Set objAppt = objSelection.Item(i)
        
        ' 只处理有效约会对象
        If objAppt.Class = olAppointment Then
            ' 创建临时Word文档用于格式转换
            Set objDoc = objWord.Documents.Add
            
            ' 将约会的HTML内容粘贴到Word文档
            objDoc.Range.PasteSpecial DataType:=2 ' 对应wdPasteHTML的数值常量
            
            ' 提取纯文本内容,移除Word末尾的多余段落标记
            plainTextContent = Left(objDoc.Range.Text, Len(objDoc.Range.Text) - 1)
            
            ' 更新约会正文为纯文本,清空HTML和RTF格式确保显示一致
            objAppt.Body = plainTextContent
            objAppt.HTMLBody = ""
            objAppt.RTFBody = ""
            
            ' 保存约会更改
            objAppt.Save
            
            ' 关闭临时文档,不保存
            objDoc.Close SaveChanges:=False
        End If
    Next i
    
    ' 清理所有对象,释放资源
    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing
    Set objAppt = Nothing
    Set objSelection = Nothing
    
    MsgBox "已完成选中约会的纯文本转换!", vbInformation
End Sub

代码说明:

  1. 先获取Outlook中选中的约会列表,确保有可处理的对象
  2. 借助Word的PasteSpecial方法,把HTML格式的内容转换成纯文本
  3. 将转换后的纯文本赋值给约会的Body属性,同时清空HTMLBody和RTFBody,避免残留格式干扰显示
  4. 最后保存约会并清理所有对象,释放系统资源

使用注意事项:

  • 运行脚本前,需要在Outlook中启用宏(路径:文件 > 选项 > 信任中心 > 信任中心设置 > 宏设置,选择合适的宏启用级别)
  • 转换过程中会丢失HTML特有的样式(比如颜色、超链接格式),但核心文本内容会完整保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:53:23