Komunikat Outlook BCC VBA nie uruchamia się automatycznie


0

Nadal jestem całkiem nowy w VBA (przepraszam, jeśli to głupie pytanie), ale już od kilku lat koduję małe aplikacje, takie jak przyciski w programie Excel lub coś takiego. Ale to nigdy nie było dla mnie jasne; Chcę zaimplementować tę funkcję zachęty BCC w automatycznej pętli dla programu Outlook. Kiedy uruchamiam makro, działa dobrze, dopóki nie uruchomię ponownie programu Outlook. Dlaczego muszę ponownie aktywować to makro za każdym razem, gdy uruchamiam program Outlook? Umieściłem go w ThisOutlooksession, włączyłem wszystkie makra (nawiasem mówiąc: czy trzeba to włączać na zawsze? Wydaje mi się niebezpieczne), ale bez powodzenia. Gdyby ktoś mógł mi pomóc, byłoby świetnie! Z góry dziękuję.

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

Odpowiedzi:


1

Aby automatycznie uruchomić Initialize_handler:

Private Sub Application_startup()
    Initialize_handler
End Sub

Możesz uprościć za pomocą:

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

Możesz uprościć, upuszczając cały kod i używając go w zamian:

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

Użyj Application_Startup()zamiast Initialize_handler().

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.