Ainda sou muito novo no VBA (desculpe se esta é uma pergunta idiota), embora já esteja codificando pequenos aplicativos há alguns anos para botões como no Excel ou algo assim. Mas isso nunca ficou claro para mim; Quero implementar esse recurso de prompt BCC em um loop automático para Outlook. Quando executo a macro, ela funciona bem até reiniciar o Outlook. Por que preciso reativar essa macro sempre que inicio o Outlook? Coloquei-o em ThisOutlooksession, habilitei todas as macros (a propósito; isso precisa ser habilitado para sempre? Parece inseguro para mim), mas sem sucesso. Se alguém pudesse me ajudar, seria ótimo! Desde já, obrigado.
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
Responder1
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 eliminando todo o seu código e usando isto:
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
Responder2
Use Application_Startup()
em vez de Initialize_handler()
.