【问题标题】:Outlook - programmatically modify email currently being composed/editedOutlook - 以编程方式修改当前正在撰写/编辑的电子邮件
【发布时间】:2023-04-07 07:54:02
【问题描述】:

出于正当的个人原因**我正在尝试构建一个宏来清除正在回复的电子邮件的收件人、抄送、主题和正文(在撰写模式下?)。我在下面的内容适用于正在阅读的电子邮件,但不适用于正在修改/撰写的电子邮件。

要让宏处理正在撰写/编辑的电子邮件,必须进行哪些更改?

Sub ClearEmail()
    Dim olExplorer As Explorer
    Dim olSelection As Selection
    Dim email As MailItem
    Dim strSig As String, Sig As String

    Set olExplorer = Application.ActiveExplorer
    Set olSelection = olExplorer.Selection
    Set email = olSelection.Item(1)

    email.To = ""
    email.CC = "team@example.com"

    email.Subject = ""
    email.HTMLBody = vbCrLf & vbCrLf & vbCrLf & "Hello"
End Sub

**我的 Exchange 个人资料已经搞砸了,已经好几个星期了,兼职 Exchange 管理员无法很快找到它。我可以成功发送电子邮件的唯一方法是从组收件箱中打开现有电子邮件,点击“全部回复”,清除字段并添加我的签名。然后我可以根据需要进行编辑并毫无问题地发送它。 (我只是撰写和发送的电子邮件卡在发件箱中并且永远不会发送 - 有几十个。)我已经手动执行此操作数周了。
我不是 Outlook/VBA 程序员,所以请原谅我不知道正确的术语。

来源:

http://www.rondebruin.nl/win/s1/outlook/signature.htm

http://www.vbforums.com/showthread.php?628044-Insert-text-into-current-outlook-message

【问题讨论】:

  • 设置电子邮件 = ActiveInspector.currentItem
  • 代码下方的小文本表示您无法发送您撰写的电子邮件;您必须编辑现有的电子邮件。您的代码直接编辑第一封或唯一选定的电子邮件。您是否尝试过创建原始电子邮件的副本并编辑副本?添加Dim emailCopy As MailItemSet emailCopy = email
  • 关于无法撰写新电子邮件 - 您是否尝试过在安全模式下使用 Outlook outlook.exe /safe?可能是一些 Outlook 插件。

标签: vba outlook outlook-2010


【解决方案1】:

这允许编辑当前正在撰写的电子邮件:

Dim theEmail As MailItem, oInspector As Inspector
Set oInspector = Application.ActiveInspector
Set theEmail = oInspector.CurrentItem

参考:

Working with current open email

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2013-05-01
    • 1970-01-01
    • 2012-01-16
    • 2015-09-24
    相关资源
    最近更新 更多