送信時に宛先に含まれるドメインの数で異なる警告メッセージを表示するマクロ


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


お世話になっております。
メールクライアントソフトとしてOutlookをPOP3/SMTPを設定して利用しています。
TO、CC、BCCに自社ドメイン以外のメールアドレスが含まれている時は警告画面を
出すようにしているのですが更に想定するシーンを細分化して以下のパターンに分類して
それぞれに合致する警告画面を表示させたいと考えております。
上記を実現するようなマクロをご教授頂ければ幸いです。

パターン1
①のみ
※自社ドメインのみ
バターン2
②のみもしくは③のみ
※社外ドメインのみ単一
パターン3
②+③
※社外ドメインのみ複数
パターン4
①+②もしくは③
※自社ドメイン+社外ドメイン(単一)
パターン5
①+②+③
※自社ドメイン+社外ドメイン(複数)

①自社ドメイン@aaa.com
②外部ドメイン1@bbb.com
③外部ドメイン2@ccc.com



ご要望の動作を実現するには、受信者のドメインを確認し、ドメインの組み合わせでフラグを設定するというような処理が必要になります。
以下のようなマクロで実現できます。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Const MY_DOMAIN = "example.com" ' 自社ドメイン名を設定
    Const FLAG_MYDOMAIN = 1
    Const FLAG_EXTDOMAIN = 2
    Const FLAG_MULTIDOMAIN = 6
    Dim strExt As String
    Dim iFlag As Integer
    Dim objRec As Recipient
    Dim strDomain As String
    '
    strExt = ""
    iFlag = 0
    ' 受信者のドメインを確認
    For Each objRec In Item.Recipients
        strDomain = Mid(objRec.Address, InStr(objRec.Address, "@") + 1)
        If strDomain = MY_DOMAIN Then
            iFlag = iFlag Or FLAG_MYDOMAIN
        ElseIf strDomain <> strExt Then
            If strExt = "" Then
                strExt = strDomain
                iFlag = iFlag Or FLAG_EXTDOMAIN
            Else
                iFlag = iFlag Or FLAG_MULTIDOMAIN
            End If
        End If
    Next
    ' 検出されたドメインに応じてメッセージを表示
    Select Case iFlag
        Case FLAG_MYDOMAIN
            ' パターン 1
            MsgBox "社内のみの送信です"
        Case FLAG_EXTDOMAIN
            ' パターン 2
            MsgBox "社外単一ドメインへの送信です"
        Case FLAG_MULTIDOMAIN
            ' パターン 3
            MsgBox "社外複数ドメインへの送信です"
        Case FLAG_MYDOMAIN Or FLAG_EXTDOMAIN
            ' パターン 4
            MsgBox "社内および社外単一ドメインへの送信です"
        Case FLAG_MYDOMAIN Or FLAG_MULTIDOMAIN
            ' パターン 5
            MsgBox "社内および社外複数ドメインへの送信です"
    End Select
End Sub

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

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中