O prompt do BCC do Outlook O VBA não é executado automaticamente

0

Eu ainda sou muito novo no VBA (desculpe se essa é uma pergunta idiota), embora eu já esteja codificando pequenos aplicativos por alguns anos, como botões no Excel ou algo assim. Mas este nunca foi ben claro para mim; Desejo implementar esse recurso de prompt do BCC em um loop automático para o Outlook. Quando executo a macro, ela funciona bem até que eu reinicie o Outlook. Por que preciso reativar essa macro toda vez e outra vez quando inicio o Outlook? Eu coloquei em ThisOutlooksession, habilitado todas as macros (a propósito, isso precisa ser ativado para sempre? Parece inseguro para mim), mas não sucessão. Se alguém pudesse me ajudar, seria ótimo! Agradecemos antecipadamente.

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
    
por Jeroen Bulten 04.04.2018 / 11:19

2 respostas

1

Para executar automaticamente Initialize_handler :

Private Sub Application_startup()
    Initialize_handler
End Sub

Você pode simplificar com:

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

Você pode simplificar descartando todo o seu código e usando isso:

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
    
por 17.04.2018 / 21:45
0

Use Application_Startup() em vez de Initialize_handler() .

    
por 04.04.2018 / 18:17