【发布时间】:2020-06-27 16:52:11
【问题描述】:
我想执行一些对于 Microsoft Outlook 的自动替换功能来说太复杂的文本替换。微软在 GitHub 上托管了相当广泛的 documentation on Microsoft Outlook VBA scripting。
我首先按 Alt+F11 打开 Visual Basic 编辑器。这是我在项目浏览器中看到的:
请注意,我不是 VBA 程序员,所以我之后所做的可能看起来很愚蠢。我发现OutlookOutlook 命名空间代表了所有 Outlook 类,所以我只选择了其中一个听起来像文本字段的类:
Dim WithEvents textField As Outlook.OlkTextBox
我创建了一个虚拟事件,应该在文本字段更改之前触发:
Private Sub textField_BeforeUpdate(Cancel As Boolean)
MsgBox "Nope!"
Cancel = True
End Sub
当然,当启动outlook并编辑消息时,脚本不会被执行。所以我想首先,我需要参考实际的文本编辑器。我该怎么做?
我的问题基本上是,当我尝试编辑任何 Outlook 消息时如何执行此代码:
MsgBox "Nope!"
Cancel = True
【问题讨论】:
-
我建议您在
ActiveExplorer上查找文档/问题,它会返回当前选定邮件项目的集合。这将允许您在启动依次处理每个的宏之前选择要编辑的邮件项目。对我来说,这听起来比您当前的代码更接近您寻求的功能。 -
您知道要编辑的邮件项目的文本正文和/或 html 正文的结构吗?如果不是我对这个问题的回答可能会有所帮助:How to copy Outlook mail message into excel using VBA or Macros。此宏创建一个工作簿,其中包含邮件项目的选定属性,包括其文本正文和 html 正文的内容。