2015-10-14 82 views
1

我想执行一些文本替换,这些替换对于Microsoft Outlook的自动替换功能来说太复杂了。微软在GitHub上托管了广泛的documentation on Microsoft Outlook VBA scripting如何使用Visual Basic编写Outlok文本编辑器?

我开始按Alt + F11它打开了Visual Basic编辑器。这是我在项目资源管理器看:

image description

请注意,我不是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 
+0

我建议你查找关于'ActiveExplorer'的文档/问题,它返回当前选定邮件项的集合。这将允许您在启动每个轮流处理的宏之前选择您希望编辑的邮件项目。对我来说,这听起来更接近你所寻求的功能,而不是你目前的代码。 –

+0

您是否知道要编辑的邮件项目的文本正文和/或html正文的结构?如果不是,我对这个问题的回答可能会有所帮助:[如何使用VBA或宏将Outlook邮件复制到Excel中](http://stackoverflow.com/a/12146315/973283)。此宏创建一个工作簿,其中包含邮件项目的选定属性,包括其文本正文和html正文的内容。 –

回答

0

尝试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