El mensaje BCC de Outlook VBA no se ejecuta automáticamente

El mensaje BCC de Outlook VBA no se ejecuta automáticamente

Todavía soy bastante nuevo en VBA (lo siento si esta es una pregunta tonta), aunque ya estoy codificando aplicaciones pequeñas desde hace algunos años para botones similares en Excel o algo así. Pero esto nunca me ha quedado claro; Quiero implementar esta función de aviso BCC en un bucle automático para Outlook. Cuando ejecuto la macro, funciona bien hasta que reinicio Outlook. ¿Por qué tengo que reactivar esta macro una y otra vez cuando inicio Outlook? Lo coloqué en ThisOutlooksession, habilité todas las macros (por cierto, ¿es necesario habilitar esto para siempre? Me parece inseguro) pero no tuve éxito. Si alguien pudiera ayudarme, ¡sería genial! Gracias de antemano.

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

Respuesta1

Para ejecutar automáticamente Initialize_handler:

Private Sub Application_startup()
    Initialize_handler
End Sub

Puedes simplificar con:

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

Puedes simplificar eliminando todo tu código y usando esto en su lugar:

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

Respuesta2

Usar Application_Startup()en lugar de Initialize_handler().

información relacionada