Outlook 2010规则是否对从Excel VBA发送的邮件运行?

我在Excel VBA中具有以下基本电子邮件代码:

Dim OutAppUser As Object Dim OutMailUser As Object Set OutAppUser = CreateObject("Outlook.Application") Set OutMailUser = OutAppUser.CreateItem(0) With OutMailUser .To = Range("Ctl_Req_Email").Value .CC = "" .BCC = "" .Subject = TempFNUser .ReadReceiptRequested = False .Body = userEmailText .Attachments.Add FullTempNameUser .Send 'Use .Send or .Display End With 

这个macros的工作簿是广泛分布的,但实际的电子邮件macros的驱动是由只有几个,现在的电子邮件地址,这样做已经改变。 我创build了一个“发送邮件之后”的Outlook规则,为新的电子邮件地址添加了“CC”作为redirect电子邮件的方式。 该规则完全适用于手动testing电子邮件,但是似乎不适用于从Excel VBA代码发送的电子邮件。 为了允许规则运行,是否需要在VBA代码上添加其他的代码来发送邮件?

http://www.slipstick.com/outlook/email/choosing-the-folder-to-save-a-sent-message-in/

“VBA不适用于使用文件,在其他应用程序中发送命令或在Windows资源pipe理器中发送到命令创build的消息。发送到命令使用简单的MAPI, 绕过Outlookfunction

实际上并没有说规则,但你已经看到规则绕过。

如果你真的想使用规则,有Outlook打开Excel。

为什么不用新的macros创build一个新的电子表格:

 Dim OutAppUser As Object Dim OutMailUser As Object Set OutAppUser = CreateObject("Outlook.Application") Set OutMailUser = OutAppUser.CreateItem(0) With OutMailUser .To = Range("Ctl_Req_Email").Value .CC = "New_email@address" ' Only change to your code .BCC = "" .Subject = TempFNUser .ReadReceiptRequested = False .Body = userEmailText .Attachments.Add FullTempNameUser .Send 'Use .Send or .Display End With 

人们将使用旧的工作表填写他们的数据,而macros观驱动程序将使用此代码来发送电子邮件。