宛先アドレスに合致する連絡先の会社名と名前が本文に含まれない場合に警告を表示するマクロ


コメントにて以下のようなご要望をいただきました。


はじめして、Outlook2007利用してます。
他部署で立て続けに誤送信がありました。
アドレス帳に登録されているアドレスと本文上部に記載した会社名や名前
を検索、比較し、一致又は不一致の判断をさせることはできるのでしょうか。
アドレス登録は、会社名、氏名、アドレスとなり、本文上部2行に
会社名と氏名を記入して比較できるのではと考えております。

何か良い解決方法がありましたらご教授願います。
宜しくお願い致します。


宛先のアドレスから連絡先アイテムを検索し、見つかった場合にそのアイテムの姓と会社名が本文にあるかどうか確認するマクロを作りました。
本文上部2行にとありますが、宛先が複数の場合 2 行では収まらないかと思い、本文全体を検索する動作としています。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecip As Recipient
    Dim objContact As ContactItem
    Dim strError As String
    '
    strError = ""
    For Each objRecip In Item.Recipients
        Set objContact = FindContactByAddress(objRecip.Address)
        If Not objContact Is Nothing Then
            With objContact
                If InStr(Item.Body, .CompanyName) = 0 Then
                    strError = strError & "会社名「" & .CompanyName & "」が本文にありません。" & vbCrLf
                End If
                If InStr(Item.Body, .LastName) = 0 Then
                    strError = strError & "名前「" & .LastName & "」が本文にありません。" & vbCrLf
                End If
            End With
        End If
    Next
    If strError <> "" Then
        If MsgBox(strError & "メールを送信しますか?", vbYesNo, "送信確認") = vbNo Then
            Cancel = True
        End If
    End If
End Sub
' 連絡先を検索する関数
Private Function FindContactByAddress(strAddress As String) As ContactItem
    Dim objContacts As Folder
    Dim objContact As ContactItem
    '
    Set objContacts = Session.GetDefaultFolder(olFolderContacts)
    Set objContact = objContacts.Items.Find("[Email1Address] = '" & strAddress _
        & "' or [Email2Address] = '" & strAddress _
        & "' or [Email3Address] = '" & strAddress & "'")
    Set FindContactByAddress = objContact
End Function

マクロの登録方法やメニューへの追加について

広告

宛先アドレスに合致する連絡先の会社名と名前が本文に含まれない場合に警告を表示するマクロ」への2件のフィードバック

  1. 本当に表示が出せて感動いたしました。
    ところで、VBエディタでマクロを編集しようとするとOutlookがフリーズし
    強制終了するしかなくなるのですが、そういったものなのでしょうか?
    もし対処法などお分かりでしたらご教示ください。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中