ワイルドカードを使用した件名やメッセージ本文の検索など、デフォルトの電子メールルールを使用して特定のことができない。複数の単語を使用できますが、単語を1文字ずつ離す必要がある場合は同じではありません。 Outlook電子メールをフィルター処理する独自のVisual Basic for Applicationsコードをどのように記述できますか?
この単純なフィルターを実現するために必要なこれらすべてのパーツの高低を見ました。 Unix procmailフィルターは、比較すると非常に使いやすいです。すべてのMicrosoft Outlookウィザードは、ワイルドカードを使用した単純なフィルターの邪魔になります。マイクロソフトがデフォルトで提供する多くの電子メールフィルター条件は有用ですが、実行中のコードの柔軟性とカスタマイズに勝るものはありません。
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
ルールの下で、「ルールとアラートの管理...」を選択します。新しいルールは次のようになります
Apply this rule after the message arrives run Project1.ThisOutlookSession.filter
これを取得するには、ステップ1:条件の選択:次をクリックします。 [OK]をクリックして、すべてのメッセージに適用されることを確認します。 [アクションの選択]で[スクリプトを実行]をオンにしてから、フィルタースクリプトをクリックして選択し、[次へ]または[完了]を選択します。 [例外の選択]で、[次へ]または[完了]をクリックします。 vba-filterなどの適切な名前を付け、[このルールを有効にする]をオンにします。完了をクリックします。ローカルフォルダーに対応しているため、オンラインまたは別のデバイスから確認した電子メールに対してこのルールが機能しないことを確認するように求められたら、[OK]をクリックします。 [ルールと警告]ダイアログボックスで[OK]をクリックします。