VBA脚本未在Outlook 2007中运行

VBA脚本未在Outlook 2007中运行,vba,loading,outlook-2007,Vba,Loading,Outlook 2007,我在通过Outlook2007发送的每封邮件上都为自己添加了一个新的VBA脚本。代码似乎工作得很好。我遇到的问题是,每次重新启动计算机并加载Outlook 2007时,直到打开VBA编辑器后,代码才生效。即使我关闭编辑器,它也会以这种方式继续正常运行。每次打开Outlook 2007时是否必须先打开然后关闭VBA编辑器?在打开并加载Outlook 2007时,是否有方法强制VBA脚本参与 以下是我正在使用的脚本: Private Sub Application_ItemSend(ByVal It

我在通过Outlook2007发送的每封邮件上都为自己添加了一个新的VBA脚本。代码似乎工作得很好。我遇到的问题是,每次重新启动计算机并加载Outlook 2007时,直到打开VBA编辑器后,代码才生效。即使我关闭编辑器,它也会以这种方式继续正常运行。每次打开Outlook 2007时是否必须先打开然后关闭VBA编辑器?在打开并加载Outlook 2007时,是否有方法强制VBA脚本参与

以下是我正在使用的脚本:

Private Sub Application_ItemSend(ByVal Item As Object, _
                                 Cancel As Boolean)
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next

    ' #### USER OPTIONS ####
    ' address for Bcc -- must be SMTP address
    ' or resolvable to a name in the address book
    strBcc = "email@domain.com"

    Set objRecip = Item.Recipients.Add(strBcc)
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
        strMsg = "Could not resolve the Bcc recipient. " & _
                "Do you want to send the message?"
        res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                "Could Not Resolve Bcc")
        If res = vbNo Then
            Cancel = True
        End If
    End If

    Set objRecip = Nothing
End Sub

首先,检查Outlook中的宏安全设置。如果将它们设置为“无警告并禁用所有宏”(最高安全设置),您仍然可以直接从VBA IDE运行代码,但由于宏已禁用,因此当VBA IDE未打开时,您的代码不会从Outlook的资源管理器运行

如果您的安全设置足够低,允许运行宏,那么下一步就是尝试确定错误发生的位置。首先删除“出错时继续下一步”行(顺便说一句,这是一件可怕的事情),并将其替换为“出错时转到错误陷阱”

然后,编写一个名为ErrTrap()的子例程来处理错误。您可以使用Err.Number和Err.Description对象将有意义的错误消息提供给MessageBox。在这里发布消息,我们可能会帮助您解决问题

干杯


-=Cameron

问题似乎来自您的信任中心设置。您需要调整Outlook中的宏安全设置。尝试将其设置为最低级别。