メール本文に含まれる名前で連絡先を検索してメールを移動するマクロ


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


はじめまして。以下のようなことが実現可能か教えていただけますでしょうか。
社内システムの承認ワークフローシステムから自動発信される承認依頼メールの仕分けができないか考えています。
WF利用者が700人近くいるため、使用者所属でグループ分けして分担する必要があるのですが
依頼メールの発信アドレスがシステムアカウントになっておりアドレス振り分けできません。

本文中に含まれるキーワード【申請者】に続いて記載されている氏名を指定アドレス帳と照合し
その所属情報で判定してのフォルダ振り分けは実現可能でしょうか


後述のようなマクロで実現できます。
マクロを定義した後、自動発信されるメールでのみ実行されるようにするため、以下のような手順で自動仕分けのルールを作成してください。

  1. [ルール]-[仕分けルールと通知の管理] をクリックします。
  2. [新しい仕分けルール] をクリックします。
  3. [受信メッセージにルールを適用する] をクリックし、[次へ] をクリックします。
  4. ワークフロー システムから自動発信される承認依頼メールの条件を指定し、[次へ] をクリックします。
  5. [スクリプトを実行する] をオンにし、ステップ 2 の中の [スクリプト] をクリックします。
  6. [スクリプトの選択] で定義したマクロを選択し、[OK] をクリックします。
  7. [完了] をクリックします。

また、フォルダーの振り分けを行うために事前に以下の準備をしてください。

  • 申請者の情報を含む連絡先フォルダーを既定の連絡先フォルダーの下に作成します。(マクロでは「社内」という名前のフォルダーとしています。)
  • 連絡先アイテムで設定されている部署名と同じ名前のフォルダーを受信トレイの下に作成します。
    例えば、あるユーザーが「営業部」という部署名なら、受信トレイの下に「営業部」というフォルダーを作成しておきます。

ルールで指定するマクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub MoveByApplicant(objMail As MailItem)
    On Error Resume Next
    Const ADDRESS_BOOK_NAME = "社内"
    Dim i As Integer
    Dim strName As String
    Dim fldContacts As Folder
    Dim objContact As ContactItem
    Dim fldInbox As Folder
    Dim fldSub As Folder
    '
    i = InStr(objMail.Body, "【申請者】")
    If i > 0 Then
        ' 申請者の名前を取得
        strName = LTrim(Mid(objMail.Body, i + 5))
        strName = Left(strName, InStr(strName, vbCrLf) - 1)
        ' 既定の連絡先フォルダーを取得
        Set fldContacts = Session.GetDefaultFolder(olFolderContacts)
        ' 既定の連絡先フォルダーを検索する場合は以下の 1 行は削除
        Set fldContacts = fldContacts.Folders(ADDRESS_BOOK_NAME)
        ' 申請者の名前で連絡先の [氏名] を検索
        Set objContact = fldContacts.Items.Find("[氏名]='" & strName & "'")
        If Not objContact Is Nothing Then
            ' 連絡先アイテムが見つかったら受信トレイの下の部署名と同じ名前のフォルダーに移動
            Set fldInbox = Session.GetDefaultFolder(olFolderInbox)
            Set fldSub = fldInbox.Folders(objContact.Department)
            objMail.Move fldSub
        End If
    End If
End Sub

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

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中