Сценарии VBA не работают в Outlook 2007

Я поместил новый VBA-скрипт для автоматического добавления себя в каждое сообщение, отправляемое через Outlook 2007. Кажется, код работает отлично. У меня проблема в том, что каждый раз, когда я перезагружаю свой компьютер и загружаю Outlook 2007, код не активируется, пока я не открою редактор VBA. Он продолжит работать должным образом, даже если я закрою редактор. Нужно ли открывать, а затем закрывать редактор VBA при каждом открытии Outlook 2007? Есть ли способ заставить сценарии VBA включаться при открытии и загрузке Outlook 2007?

Вот скрипт, который я использую:

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

1 ответ

Сначала проверьте настройки безопасности макросов в Outlook. Если для них установлено "Нет предупреждений и отключить все макросы" (самый высокий параметр безопасности), вы все равно можете запускать код непосредственно из IDE VBA, но поскольку макросы отключены, ваш код не будет запускаться из проводника Outlook, когда VBA IDE не открыт

Если настройки безопасности достаточно низкие для запуска макросов, то следующим шагом будет попытаться определить, где произошла ошибка. Начните с удаления строки "On Error Resume Next" (это ужасно, кстати), и замените ее на "On Error GoTo ErrTrap".

Затем напишите подпрограмму ErrTrap() для обработки ошибки. Вы можете использовать объекты Err.Number и Err.Description для подачи значимого сообщения об ошибке в MessageBox. Отправьте сообщение здесь, и мы сможем помочь вам устранить неполадки оттуда.

Ура,

- = Cameron

Другие вопросы по тегам