VBA:OUTLOOK:添付ファイルを自動保管&mail削除

説明:
指定のOutlookフォルダ”mailfolder”を開く
mailを後方から順番に開いて、
mailタイトルが”TEST:”で始まるかチェック
添付ファイルを指定のフォルダ”BASE_PATH”に保管してmailを削除

Const BASE_PATH As String = "c:\temp\mail\"
    
Sub export_attached_file()
    Dim myOlApp As Object, myNameSpace As Object, myFolder As Object
    Dim MAX_MAIL As Long
    Dim myItem As Object, myAttachments As Object
    Dim Title As String
        
    Title = "TEST:"
    
    Set myOlApp = CreateObject("Outlook.Application")
    Set myNameSpace = myOlApp.GetNamespace("MAPI")
    'Set myFolder = myNameSpace.PickFolder '毎回フォルダを選択させたい場合
    Set myFolder = myNameSpace.Folders("mailfolder") 'mailのフォルダ指定
    
    MAX_MAIL = myFolder.Items.Count
    Open BASE_PATH & "index_ZIP.txt" For Output As #1
        
    For j = MAX_MAIL To 1 Step -1
        'Debug.Print J
        Set myItem = myFolder.Items(j)
        Set myAttachments = myItem.Attachments
        
        '添付フアィルの数をカウント
        cu = myAttachments.Count
        
        If Left(myItem.Subject, Len(Title)) = Title Then
        
            'ファイルを保存
            For i = 1 To cu
                FN = BASE_PATH & myAttachments.Item(i).DisplayName
                myAttachments.Item(i).SaveAsFile FN
                Print #1, FN
            Next i
            myItem.Delete 'mail delete
        
        End If
        Debug.Print j
        DoEvents
    Next
    Close
    
    MsgBox "done!"

End Sub

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です