VBAスクリプトでルールを使用してOutlook電子メールをフィルターする方法


14

件名やワイルドカードを使用したメッセージ本文の検索など、デフォルトの電子メールルールを使用して特定のことを行うことはできません。複数の単語を実行できますが、1文字離れた単語が必要な場合は同じではありません。Outlook電子メールをフィルター処理するためのVisual Basic for Applicationsコードを独自に作成するにはどうすればよいですか?

回答:


12

この単純なフィルターを実現するために必要なこれらすべての部品の高低を確認しました。Unix procmailフィルターは、比較すると非常に使いやすいです。すべてのMicrosoft Outlookウィザードは、ワイルドカードを使用した単純なフィルターの邪魔になります。Microsoftがデフォルトで提供する多くの電子メールフィルター条件は有用ですが、実行中のコードの柔軟性とカスタマイズに勝るものはありません。

  1. コードを書きます。

Alt-F11は、VBAコードエディターを表示します。ThisOutlookSessionをダブルクリックします。コードを書きます。私の場合、サブジェクト行で正規表現を使用し、DefaultFolderではなくサブフォルダー内の自分のpstに移動しています。

Sub filter(Item As Outlook.MailItem)
    Dim ns As Outlook.NameSpace
    Dim MailDest As Outlook.Folder
    Set ns = Application.GetNamespace("MAPI")
    Set Reg1 = CreateObject("VBScript.RegExp")
    Reg1.Global = True
    Reg1.Pattern = "(.*Abc.20.*)"
    If Reg1.Test(Item.Subject) Then
        Set MailDest = ns.Folders("Personal Folders").Folders("one").Folders("a")
        Item.Move MailDest
    End If
End Sub
  1. ルールを使用して、受信メールごとにコードを実行します。

ルールの下で、「ルールとアラートの管理...」を選択します。新しいルールは次のようになります

Apply this rule after the message arrives run Project1.ThisOutlookSession.filter

これを取得するには、ステップ1:条件の選択:[次へ]をクリックします。[OK]をクリックして、すべてのメッセージに適用されることを確認します。[アクションの選択]で[スクリプトの実行]をオンにし、クリックしてフィルタースクリプトを選択し、[次へ]または[完了]を選択します。[例外を選択]で、[次へ]または[完了]をクリックします。vba-filterなどの適切な名前を付けて、[このルールを有効にする]をオンにします。完了をクリックします。ローカルフォルダーに対応しているため、このルールがオンラインまたは別のデバイスからチェックするメールに対して機能しないことを確認するよう求められたら、[OK]をクリックします。[ルールと警告]ダイアログボックスで[OK]をクリックします。

  1. マクロが署名されていない場合、Outlookはそれを好みません。マクロに自己署名するには、証明書を作成して使用します。

マクロやユーザー定義列の作成など、他の多くの部分的な解決策について読みました。これにより、UIの並べ替えまたはビューのフィルター処理が可能になりますが、すべてのメッセージが受信時に編集されます。
グラントボウマン

1
Outlookクライアントは、Outlookの起動時にvbscript vba-filterを実行するルールを一貫して無効にします。これが問題を引き起こしました。各ルールに追加するvbscriptの文字数制限もあります。それらが一貫して機能するように、柔軟性は劣りますが、標準のOutlookフィルターを使用してフィルターを書き換え、常に機能するようにしました。
グラントボウマン

2
スクリプトを実行するこのオプションがありませんでした。ここに関連リンクを見つけました:slipstick.com/outlook/rules/outlook-2016-run-a-script-rules
Jayan

上記のコードは私には機能しません。件名ファイルにAbc.20を入れましたが、メッセージが受信トレイから移動することはありません。
23:41にテンサイ

1
デバッグウィンドウを使用して、正規表現を機能させることができました。今では、適切なフォルダに移動するだけです。私はそれを理解できると思います。ご協力いただきありがとうございます。
テンサイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.