【问题标题】:How to script Outlok text editor using Visual Basic?如何使用 Visual Basic 编写 Outlok 文本编辑器的脚本?
【发布时间】: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 正文的内容。

标签: vba outlook


【解决方案1】:

试试write 事件。

Private WithEvents myItem As MailItem 

Private Sub Application_Startup()
    Set myItem = ActiveInspector.CurrentItem 
End Sub

Private Sub myItem_Write(Cancel As Boolean) 
    MsgBox "Nope!"
    Cancel = True
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 2012-12-31
    • 1970-01-01
    • 2022-12-15
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    相关资源
    最近更新 更多