メッセージの受信者の Exchange のプロパティを取得するマクロ


あしあと機能を使って以下のようなご質問を受けました。


メール誤送信を防ぐために Outlook で確認用のマクロを作っております。
Application_ItemSend のタイミングでチェックするものです。
入力されたメールアドレスをアドレス帳(Exchange)から検索し、
関係ある所属(指定した所属)であるかどうかを判定したいです。
どのようなコードを書けばよいでしょうか?


Outlook のバージョンが記載されていなかったので、Outlook 2007 であることを前提として説明します。

Outlook 2007 から、AddressEntry オブジェクトの GetExchangeUser メソッドにより、ExchangeUser オブジェクトが取得できるようになりました。このオブジェクトはメッセージの受信者などが Exchange Server のグローバル アドレス一覧に存在する場合に、Exchange ユーザーの詳細なプロパティを取得できるようにするものです。部署名は、ExchangeUser オブジェクトの Department プロパティに格納されています。

以下は、メッセージ送信の際に、メッセージの受信者の部署名をイミディエイト ウィンドウに表示するサンプルです。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecp As Recipient
    Dim objExchUser As ExchangeUser
'
    If Item.MessageClass Like "IPM.TaskRequest*" Then
        Set Item = Item.GetAssociatedTask(False)
    End If
'
    For Each objRecp In Item.Recipients
        Set objExchUser = objRecp.AddressEntry.GetExchangeUser()
        If Not objExchUser Is Nothing Then
            Debug.Print objExchUser.Department
        End If
    Next
End Sub

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

広告

メッセージの受信者の Exchange のプロパティを取得するマクロ」への7件のフィードバック

  1. ありがとうございました。遅くなってすいません。バージョンを書き忘れました。お手数ですがOutlookのバージョンは2003でお願いいたします。

  2. Outlook 2003 の場合 CDO を使う必要があるのですが、CDO でアドレス帳にアクセスをするとセキュリティの警告ダイアログが表示されてしまいます。Exchange サーバーのパブリック フォルダにセキュリティ フォームを保存して抑止することもできますが、サーバーの管理者権限はお持ちでしょうか?もし、サーバーの管理者権限がないということなら、グローバル アドレス帳のエントリを連絡先に保存して、連絡先のデータを参照する方がよいと思うのですが。どちらの方法を使用しますか?

  3. いつもありがとうございます。管理者権限でなく、一般ユーザとしての方法を教えてください。仕事が忙しいときなど、メール誤送信が多発し、私だけでなく、周囲の人も悩んでいます。よろしくお願いいたします。

  4. […] 以前、メッセージの受信者の Exchange のプロパティを取得するマクロという記事で、Outlook 2007 用の受信者の部署名チェックを行なうマクロを紹介しました。しかし、ご要望をいただいた方は Outlook 2003 をお使いということであったため、今回は Outlook 2003 でも使えるマクロを紹介します。 […]

  5. 上記のマクロを使用して、宛名+部署名でご送信チェックが出来るマクロを組みたいのですが、どのようにしたらよろしいでしょうか?

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中