Consulting

Results 1 to 5 of 5

Thread: Solved: Copying attachments

  1. #1
    Administrator
    VP-Knowledge Base
    VBAX Grand Master mdmackillop's Avatar
    Joined
    May 2004
    Location
    Scotland
    Posts
    14,489
    Location

    Solved: Copying attachments

    I'm trying to use the following code from the Help file, but MyInspector is not being set. I'm running this from Outlook, so I'm not sure that I need to create the new application, but I'm new to this!

    [VBA]
    Sub SaveAttachment()
    Dim myOlApp As Outlook.Application
    Dim myInspector As Outlook.Inspector
    Dim myItem As Outlook.MailItem
    Dim myAttachments As Outlook.Attachments

    Set myOlApp = CreateObject("Outlook.Application")
    Set myInspector = myOlApp.ActiveInspector
    If Not TypeName(myInspector) = "Nothing" Then
    If TypeName(myInspector.CurrentItem) = "MailItem" Then
    Set myItem = myInspector.CurrentItem
    Set myAttachments = myItem.Attachments
    'Prompt the user for confirmation
    Dim strPrompt As String
    strPrompt = "Are you sure you want to save the first attachment in the current item to the C:\ folder? If a file with the same name already exists in the destination folder, it will be overwritten with this copy of the file."
    If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
    myAttachments.Item(1).SaveAsFile "M:\" & InputBox("Job No.") & "\Attachments\" & _
    myAttachments.Item(1).DisplayName
    End If
    Else
    MsgBox "The item is of the wrong type."
    End If
    End If
    End Sub

    [/VBA]
    MVP (Excel 2008-2010)

    Post a workbook with sample data and layout if you want a quicker solution.


    To help indent your macros try Smart Indent

    Please remember to mark threads 'Solved'

  2. #2
    VBAX Master Norie's Avatar
    Joined
    Jan 2005
    Location
    Stirling, Scotland
    Posts
    1,831
    Location
    Don't know about Inspector but this is the code I use to copy attachments to my hard drive.
    [vba]
    Sub SaveAttachments()
    Dim myOlapp As Outlook.Application
    Dim myNameSpace As Outlook.NameSpace
    Dim myFolder As Outlook.MAPIFolder
    Dim myItem As Outlook.MailItem
    Dim myAttachment As Outlook.Attachment
    Dim I As Long

    Set myOlapp = CreateObject("Outlook.Application")
    Set myNameSpace = myOlapp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    Set myFolder = myFolder.Folders("Job Stuff")

    For Each myItem In myFolder.Items
    If myItem.Attachments.Count <> 0 Then
    For Each myAttachment In myItem.Attachments
    I = I + 1
    myAttachment.SaveAsFile "C:\MailTest\Attachment" & I & ".csv"
    Next
    End If

    Next
    End Sub[/vba]

  3. #3
    Administrator
    VP-Knowledge Base VBAX Grand Master mdmackillop's Avatar
    Joined
    May 2004
    Location
    Scotland
    Posts
    14,489
    Location
    Thanks Norie, I'll give that a try.
    MVP (Excel 2008-2010)

    Post a workbook with sample data and layout if you want a quicker solution.


    To help indent your macros try Smart Indent

    Please remember to mark threads 'Solved'

  4. #4
    VBAX Newbie
    Joined
    Jul 2008
    Posts
    1
    Location

    Unhappy

    My attempts to duplicate these solutions has failed. Obviously, I need some special assistance. please

  5. #5
    The Code did not work for me either. I'm using MS Office 2003.

    ~Jamil

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •