PC Review Forums Newsgroups Microsoft Outlook Microsoft Outlook VBA Programming Help to modify the code

Reply

Help to modify the code

 
Thread Tools Rate Thread
Old 19-12-2007, 06:52 PM   #1
Boss
Guest
 
Posts: n/a
Default Help to modify the code


Hi,

Below is the code to download attachemnt from outlook.
I wish to name the saved file as the subject of the email.
Please help me.. i am poor in coding, i can just record macros.
This code i got from the community.

Thanks a lot. Its very imp for me.
Boss


Sub GetAttachments()
' This Outlook macro checks a the Outlook Inbox for messages
' with attached files (of any type) and saves them to disk.
' NOTE: make sure the specified save folder exists before
' running the macro.
On Error GoTo GetAttachments_err
' Declare variables
Dim ns As NameSpace
Dim Inbox As MAPIFolder
Dim Item As Object
Dim Atmt As Attachment
Dim FileName As String
Dim i As Integer
Set ns = GetNamespace("MAPI")
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
i = 0
' Check Inbox for messages and exit of none found
If Inbox.Items.Count = 0 Then
MsgBox "There are no messages in the Inbox.", vbInformation, _
"Nothing Found"
Exit Sub
End If
' Check each message for attachments
For Each Item In Inbox.Items
' Save any attachments found
For Each Atmt In Item.Attachments
' This path must exist! Change folder name as necessary.
FileName = "C:\Email Attachments\" & Atmt.FileName
Atmt.SaveAsFile FileName
i = i + 1
Next Atmt
Next Item
' Show summary message
If i > 0 Then
MsgBox "I found " & i & " attached files." _
& vbCrLf & "I have saved them into the C:\Email Attachments folder." _
& vbCrLf & vbCrLf & "Have a nice day.", vbInformation, "Finished!"
Else
MsgBox "I didn't find any attached files in your mail.",
vbInformation, "Finished!"
End If
' Clear memory
GetAttachments_exit:
Set Atmt = Nothing
Set Item = Nothing
Set ns = Nothing
Exit Sub
' Handle errors
GetAttachments_err:
MsgBox "An unexpected error has occurred." _
& vbCrLf & "Please note and report the following information." _
& vbCrLf & "Macro Name: GetAttachments" _
& vbCrLf & "Error Number: " & Err.Number _
& vbCrLf & "Error Description: " & Err.Description _
, vbCritical, "Error!"
Resume GetAttachments_exit
End Sub

  Reply With Quote
Old 19-12-2007, 07:36 PM   #2
JP
Guest
 
Posts: n/a
Default Re: Help to modify the code

Change

FileName = "C:\Email Attachments\" & Atmt.FileName

to

FileName = "C:\Email Attachments\" & Item.Subject


Keep in mind this code may fail because you are declaring 'Item' as an
Object and AFAIK not all possible Inbox items have a 'Subject'
property.


HTH,
JP

On Dec 19, 1:52 pm, Boss <B...@discussions.microsoft.com> wrote:
> Hi,
>
> Below is the code to download attachemnt from outlook.
> I wish to name the saved file as the subject of the email.
> Please help me.. i am poor in coding, i can just record macros.
> This code i got from the community.
>
> Thanks a lot. Its very imp for me.
> Boss
>
> Sub GetAttachments()
> ' This Outlook macro checks a the Outlook Inbox for messages
> ' with attached files (of any type) and saves them to disk.
> ' NOTE: make sure the specified save folder exists before
> ' running the macro.
> On Error GoTo GetAttachments_err
> ' Declare variables
> Dim ns As NameSpace
> Dim Inbox As MAPIFolder
> Dim Item As Object
> Dim Atmt As Attachment
> Dim FileName As String
> Dim i As Integer
> Set ns = GetNamespace("MAPI")
> Set Inbox = ns.GetDefaultFolder(olFolderInbox)
> i = 0
> ' Check Inbox for messages and exit of none found
> If Inbox.Items.Count = 0 Then
> MsgBox "There are no messages in the Inbox.", vbInformation, _
> "Nothing Found"
> Exit Sub
> End If
> ' Check each message for attachments
> For Each Item In Inbox.Items
> ' Save any attachments found
> For Each Atmt In Item.Attachments
> ' This path must exist! Change folder name as necessary.
> FileName = "C:\Email Attachments\" & Atmt.FileName
> Atmt.SaveAsFile FileName
> i = i + 1
> Next Atmt
> Next Item
> ' Show summary message
> If i > 0 Then
> MsgBox "I found " & i & " attached files." _
> & vbCrLf & "I have saved them into the C:\Email Attachments folder." _
> & vbCrLf & vbCrLf & "Have a nice day.", vbInformation, "Finished!"
> Else
> MsgBox "I didn't find any attached files in your mail.",
> vbInformation, "Finished!"
> End If
> ' Clear memory
> GetAttachments_exit:
> Set Atmt = Nothing
> Set Item = Nothing
> Set ns = Nothing
> Exit Sub
> ' Handle errors
> GetAttachments_err:
> MsgBox "An unexpected error has occurred." _
> & vbCrLf & "Please note and report the following information." _
> & vbCrLf & "Macro Name: GetAttachments" _
> & vbCrLf & "Error Number: " & Err.Number _
> & vbCrLf & "Error Description: " & Err.Description _
> , vbCritical, "Error!"
> Resume GetAttachments_exit
> End Sub


  Reply With Quote
Old 19-12-2007, 08:35 PM   #3
Ken Slovak - [MVP - Outlook]
Guest
 
Posts: n/a
Default Re: Help to modify the code

All Outlook items implement the Subject property.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"JP" <jp2112@earthlink.net> wrote in message
news:8ba444d9-272d-405d-9289-44938ebe7814@c4g2000hsg.googlegroups.com...
> Change
>
> FileName = "C:\Email Attachments\" & Atmt.FileName
>
> to
>
> FileName = "C:\Email Attachments\" & Item.Subject
>
>
> Keep in mind this code may fail because you are declaring 'Item' as an
> Object and AFAIK not all possible Inbox items have a 'Subject'
> property.
>
>
> HTH,
> JP


  Reply With Quote
Old 20-12-2007, 10:31 AM   #4
Boss
Guest
 
Posts: n/a
Default Re: Help to modify the code

It worked.. many many many thanks.. It was really imp for me..

Gaurav

"Ken Slovak - [MVP - Outlook]" wrote:

> All Outlook items implement the Subject property.
>
> --
> Ken Slovak
> [MVP - Outlook]
> http://www.slovaktech.com
> Author: Professional Programming Outlook 2007
> Reminder Manager, Extended Reminders, Attachment Options
> http://www.slovaktech.com/products.htm
>
>
> "JP" <jp2112@earthlink.net> wrote in message
> news:8ba444d9-272d-405d-9289-44938ebe7814@c4g2000hsg.googlegroups.com...
> > Change
> >
> > FileName = "C:\Email Attachments\" & Atmt.FileName
> >
> > to
> >
> > FileName = "C:\Email Attachments\" & Item.Subject
> >
> >
> > Keep in mind this code may fail because you are declaring 'Item' as an
> > Object and AFAIK not all possible Inbox items have a 'Subject'
> > property.
> >
> >
> > HTH,
> > JP

>
>

  Reply With Quote
Old 20-12-2007, 01:19 PM   #5
JP
Guest
 
Posts: n/a
Default Re: Help to modify the code

Thanks Ken, couldn't remember.
--JP

On Dec 19, 3:35 pm, "Ken Slovak - [MVP - Outlook]"
<kenslo...@mvps.org> wrote:
> All Outlook items implement the Subject property.
>
> --
> Ken Slovak
> [MVP - Outlook]http://www.slovaktech.com
> Author: Professional Programming Outlook 2007
> Reminder Manager, Extended Reminders, Attachment Optionshttp://www.slovaktech.com/products.htm
>
> "JP" <jp2...@earthlink.net> wrote in message
>
> news:8ba444d9-272d-405d-9289-44938ebe7814@c4g2000hsg.googlegroups.com...
>
>
>
> > Change

>
> > FileName = "C:\Email Attachments\" & Atmt.FileName

>
> > to

>
> > FileName = "C:\Email Attachments\" & Item.Subject

>
> > Keep in mind this code may fail because you are declaring 'Item' as an
> > Object and AFAIK not all possible Inbox items have a 'Subject'
> > property.

>
> > HTH,
> > JP

  Reply With Quote
Reply



Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off