自動仕分けの条件にない条件で処理を実行するマクロ


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


用意されている仕分けルールでは望んだ仕分けができない場合、
マクロ機能を使って自動仕分けウィザードに新たなルールを挿入する
方法はあるでしょうか?

希望するルール

宛先が[名前]の場合、指定したフォルダに移動する

outlook2010では、宛先またはCCが[名前]の場合、指定したフォルダに移動する
というルールしか用意されておらず、宛先ではなくCCで送った人のフォルダに
メールが仕分けられてしまい困っています。


Outlookの標準機能で様々な条件でメールの自動仕分けができます
が「宛先またはCCに自分の名前がある場合」という条件を付けられ
ますが「宛先に自分の名前がありCCに特定のアドレスがある場合」
というような条件を付ける事ができません。
マクロを使って任意の仕分け条件を作る事は可能でしょうか?



Outlook の標準の自動仕分けにないルールで処理を実行したい場合、メールの受信時にマクロを実行し、そのマクロの中で条件をチェックして処理を実行します。
メールの受信時にマクロを実行するには、Application_NewMailEx を使用します。
例えば、To に usera@example.com、Cc に userb@example.com がある場合に、受信トレイの下の Sample フォルダーにメールを移動するというような場合は、以下のようなマクロで実現できます。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Const TO_ADDRESS = "usera@example.com"
    Const CC_ADDRESS = "userb@example.com"
    Const MOVE_FOLDER = "sample"
    Dim objMsg
    Dim objRecip As Recipient
    Dim bToFound As Boolean
    Dim bCcFound As Boolean
    ' 受信メッセージの取得
    Set objMsg = Session.GetItemFromID(EntryIDCollection)
    bToFound = False
    bCcFound = False
    ' 受信者の確認
    For Each objRecip In objMsg.Recipients
        ' 宛先に指定されているアドレスのチェック
        If objRecip.Type = olTo And objRecip.Address = TO_ADDRESS Then
            bToFound = True
        End If
        ' Cc に指定されているアドレスのチェック
        If objRecip.Type = olCC And objRecip.Address = CC_ADDRESS Then
            bCcFound = True
        End If
    Next
    ' 宛先と Cc の条件が合致した場合の処理
    If bToFound And bCcFound Then
        Dim fldInbox As Folder
        Dim fldMoveTo As Folder
        ' 受信トレイを取得
        Set fldInbox = Session.GetDefaultFolder(olFolderInbox)
        ' 受信トレイの下のフォルダーを取得
        Set fldMoveTo = fldInbox.Folders(MOVE_FOLDER)
        ' メッセージをフォルダーに移動
        objMsg.Move fldMoveTo
    End If
End Sub

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

自動仕分けの条件にない条件で処理を実行するマクロ」への1件のフィードバック

  1. 解決策のご提示ありがとうございます。
    マクロで対処する方法があるということですので、チャレンジしてみます。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中