Я все еще довольно новичок в VBA (так что извините, если это глупый вопрос), хотя я уже несколько лет пишу небольшие приложения для подобных кнопок в Excel или что-то в этом роде. Но этот никогда не был понятен мне; Я хочу реализовать эту функцию подсказки BCC в автоматическом цикле для Outlook. Когда я запускаю макрос, он работает нормально, пока я не перезапущу Outlook. Почему я должен снова и снова активировать этот макрос при запуске Outlook? Я поместил его в ThisOutlooksession, включил все макросы (кстати, это нужно включить всегда? мне кажется небезопасным) но безуспешно. Если бы кто-то мог мне помочь, это было бы здорово! Заранее спасибо.

Public WithEvents myOlApp As Outlook.Application

Public Sub Initialize_handler()
    Set myOlApp = CreateObject("Outlook.Application")


End Sub

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)


Dim prompt As String
prompt = "The BCC Field is empty!"



If Item.BCC = "" Then


    If msgbox(prompt, vbYesNo + vbQuestion, "BCC Field") = vbNo Then
    Cancel = True
    End If
 End If

End Sub

2 ответа2

1

Чтобы автоматически запустить Initialize_handler:

Private Sub Application_startup()
    Initialize_handler
End Sub

Вы можете упростить с:

Private Sub Application_startup()
    Set myolApp = CreateObject("Outlook.Application")
End Sub

Вы можете упростить, отбросив весь свой код и используя вместо этого:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim prompt As String
    prompt = "The BCC Field is empty!"

    If Item.BCC = "" Then
        If MsgBox(prompt, vbYesNo + vbQuestion, "BCC Field") = vbNo Then
            Cancel = True
        End If
    End If

End Sub
0

Используйте Application_Startup() вместо Initialize_handler() .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .