Start Outlook à
Tools à Macro à Visual Basic Editor.
Add a new code module by choosing Insert > Module and add the following code. Compile the Macro and run.
Sub DownloadAttachments()
Dim ns As
NameSpace
Dim Inbox As MAPIFolder
Dim Subfolder As MAPIFolder
Dim Item As
Object
Dim Atmt As Attachment
Dim FileName As
String
Dim Localfolder As
String
Dim SubfolderName As
String
Dim i As
Integer
Dim j As
Integer
'***************************
' This Macro is coded to downlaod the files only from the folders under the INBOX.
' Apprently you could change ns.GetDefaultFolder(olFolderInbox) argument to any other folder and try.
' The NameSpace is the object that gives you access to all Outlook's folders.
' In Outlook there is only one and it is called "MAPI" which is an acronym for Messaging Application Programming
' Interface.
'***************************
On
Error
GoTo GetAttachments_err
Localfolder = "C:\Email Attachments\"
SubfolderName = "AppWorx"
'Configure your own folder name which is under your INBOX.
ns = GetNamespace("MAPI")
Inbox = ns.GetDefaultFolder(olFolderInbox) ''Change the argument to any other folder.
Subfolder = Inbox.Folders(SubfolderName)
i = 0
If Subfolder.Items.Count = 0 Then
MsgBox("There are no messages in the folder." _
, vbInformation, "Nothing Found")
Exit
Sub
End
If
If Subfolder.Items.Count > 0 Then
j = j + 1
For
Each Item In Subfolder.Items
For
Each Atmt In Item.Attachments
If LCase(Right(Atmt.FileName, 4)) = ".csv"
Then 'change your filter logi here
FileName = Localfolder & Atmt.FileName
Atmt.SaveAsFile(FileName)
i = i + 1
End
If
Next Atmt
Next Item
End
If
If i > 0 Then
varResponse = MsgBox("Downloaded " & i & " files." _
& vbCrLf & "Saved @" & Localfolder & " folder." _
& vbCrLf & vbCrLf & "Would you like to view the files now?" _
, vbQuestion + vbYesNo, "Finished!")
If varResponse = vbYes Then
Shell("Explorer.exe /e, " & Localfolder, vbNormalFocus)
End
If
Else
MsgBox("I didn't find any attached files in your mail.", vbInformation, _
"Finished!")
End
If
GetAttachments_exit:
Atmt = Nothing
Item = Nothing
ns = Nothing
Exit
Sub
GetAttachments_err:
MsgBox("An unexpected error has occurred. @" & j & "Email record" & Err.Number _
& vbCrLf & "Error Description: " & Err.Description _
, vbCritical, "Error!")
Resume GetAttachments_exit
End
Sub
No comments:
Post a Comment