2016-08-25 1 views
0

正規表現を使用して件名を確認し、6桁の連続する数字が含まれている場合は、特定のフォルダに移動します。ルール内のRegExを持つフォルダに受信メールを移動する

私は修正しようとしているスクリプトをオンラインで見つけました。

メインの受信トレイのsubfolderである「AMEX」というフォルダにこれらのメールを配置します。

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 = "([\d][\d][\d][\d][\d][\d])" 
    If Reg1.Test(Item.Subject) Then 
     Set MailDest = ns.Folders("Inbox").Folders("AMEX") 
     Item.Move MailDest 
    End If 
End Sub 
+0

正規表現は罰金だ、あなたはすべてのエラーを得るのですか?またはその電子メールを目的のフォルダに移動しないだけですか? –

+0

エラーはまったくスローされませんが、スクリプトを実行するルールを再実行してどこにも移動しないとメールは受信トレイに残ります。 – Reidacus

+0

ルールは新しい電子メールの受信に基づいていますか?または既存の電子メール?件名に6桁の電子メールをそのアカウントに送信しようとしましたか? –

答えて

3

あなたの問題は、フォルダ名である 設定MailDest = ns.Folders( "受信トレイ")を交換してください。フォルダ( "AMEX")は、この行

Set MailDest = ns.Folders("[email protected]").Folders("Inbox").Folders("AMEX") 

といけないと

あなたのアカウント名を入れないことを忘れないでください

+3

あなた、私は素晴らしい冷たいビールを所有しています。魅力のように働いて、ありがとうございました:) – Reidacus

1

また、このように設定することもできます。

Set MailDest = ns.GetDefaultFolder(olFolderInbox).Folders("AMEX") 

GetDefaultFolder Method

+1

ニースとクリーンなソリューション:) –

関連する問題