Eu não acho que exista uma maneira padrão. Aqui está outra macro do VBA que é mais dinâmica do que a que você já encontrou usando o regexp:
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim regEx As New VBScript_RegExp_55.RegExp
Dim Match, Matches
Dim mail As MailItem
' Check if this is a mail
If Not Item.Class = olMail Then Exit Sub
Set mail = ActiveInspector.CurrentItem
' Check if the user forgot the attachment
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
If mail.Attachments.Count = 0 Then ' no attachment
Dim s As String
s = mail.Body
' remove previous answers from the convesation (for Outlook 2003)
If InStr(1, s, "_", vbTextCompare) <> 0 Then
s = Mid(s, 1, InStr(1, s, "_", vbTextCompare))
End If
' if the message is not in HTML
If InStr(1, s, "-Message d'origine-", vbTextCompare) <> 0 Then
s = Mid(s, 1, InStr(1, s, "-Message d'origine-", vbTextCompare))
End If
regEx.Pattern = "(^|^\w+)(attachment|joined|here is|document|linked)^\w+"
Set Matches = regEx.Execute(s)
If Matches.Count > 0 Then
Cancel = MsgBox("VYou may have forgotten to join the attachment. Are you sure you want to send your mail ?", vbYesNo + vbExclamation, "Missing attachment!") = vbNo
End If
End If
End Sub
Note que você pode traduzir todas as palavras-chave para o seu idioma atual.
Aqui estão alguns documentos explicando como adicionar uma macro ao Outlook:
- No Super User: Como adiciono o VBA no MS Office?
- No Microsoft Developer Network (MSDN): Adicionando uma macro VBA ao Outlook .
Você também pode encontrar algumas soluções pagas .