質問: vbaスクリプトを含むルールを使用してoutlookメールをフィルタリングする方法 ワイルドカードを使用した件名やメッセージ本文の検索など、デフォルトの電子メールルールを使用して特定のことができない。複数の単語を使用できますが、単語を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]をクリックします。 マクロが署名されていない場合、outlookはそれを好みません。マクロに自己署名するには 証明書を作成して使用 。