Outlook でメール送信時に件名や添付ファイルのチェックを行う方法

この Tips では、 Outlook でメールを送信する時に件名 (Subject) や添付ファイルのチェックを行う方法について説明します。 Outlook を利用していると、メールの送信後に件名の入力漏れやファイルの添付漏れに気づく場合があります。*1

ここでは、マクロ (VBA) を使った方法を説明します。以下のマクロを ItemSend イベントへ関連づけてください。 (Tips 用にシンプルにしたため、関数化などを行っていません。各自で機能拡張を行うときにリファクタリングしてください。リファレンスとして MSDNOutlook の VBA を使用した Outlook イベントへの応答やその周辺が参考になります。)

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim strSubject As String
    Dim strBody As String
    
    strSubject = Item.Subject '件名
    strBody = Item.Body       '本文
    
    ' 件名チェック
    If Trim(strSubject) = "" Then
        If MsgBox("件名を忘れている可能性があります。本当に送信しますか?", vbYesNo + vbExclamation) = vbNo Then
            Cancel = True
            Exit Sub
        End If
    End If

    ' 添付ファイルチェック
    If InStr(strSubject & strBody, "添付") > 0 And Item.Attachments.Count = 0 Then
        If MsgBox("添付ファイルを忘れている可能性があります。本当に送信しますか?", vbYesNo + vbQuestion) = vbNo Then
            Cancel = True
            Exit Sub
        End If
    End If

End Sub

上記の拡張によって、メール送信時に以下のチェック機能が追加されます。

  • 件名がないメールを送信する場合に警告
  • 件名や本文に「添付」という文字列が含まれているにもかかわらず、ファイルが添付されていない場合に警告

なお、個人的な好みですが、メールクライアント (MUA) に Outlook はおすすめしません*2

*1:Becky など他の MUA では、設定で警告メッセージを表示できるためミスが少ないのですが。

*2:理由は、セキュリティをのぞけば、重い、重い、重いといろいろあるのですが…… :-p