Este post foi originalmente publicado em http://officevbavsto.blogspot.com/2011/04/outlook-vba-impedindo-que-e-mails-sem.html

O Outlook 2010 já emite um aviso para quando o usuário tenta enviar e-mails sem assunto, mas ele pode optar por enviar mesmo assim. Neste post, eu descrevo como impedir e-mails sem assunto de serem enviados usando VBA.

Acesse o Visual Basic Editor do Outlook (Alt + F11) e localize o objeto ThisOutlookSession.

Objeto ThisOutlookSession

Vamos ao código:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)  
  If TypeName(Item) = "MailItem" Then              
    If Trim(Item.Subject) = "" Then
      MsgBox "O assunto do e-mail é obrigatório!", vbExclamation, "Alerta de e-mail sem assunto"
      Cancel = True
      Exit Sub
    End If
  End If
End Sub

Explicação:  

  • Application_ItemSend é um evento do Outlook que é disparado assim que um item é enviado, seja um e-mail, um convite de reunião, uma tarefa e etc.
  • TypeName é um método que retorna o tipo do objeto. Neste artigo estamos falando de e-mail, então o tipo do objeto é MailItem.
  • Item é um objeto que represento o item (e-mail, solicitação de reunião e etc.) que está sendo enviado.
  • Item.Subject é o assunto do e-mail.
  • Cancel = True, quando você define True, ele cancela o envio do item (e-mail, solicitação de reunião e etc.)
Mensagem impedindo o envio

Créditos

Photo by Miguel Á. Padriñán from Pexels