1 Replies - 888 Views - Last Post: 05 October 2012 - 05:16 AM Rate Topic: -----

#1 vodkasoda  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 03-October 12

Outlook program to store Attachments

Posted 04 October 2012 - 01:37 PM

I have written this small program in VS2010 to run on Outlook 2007.

It works for a standard read through of the Inbox, but I cannot get it to correctly point to other Folders, I am getting a "COMException was unhandled by user code" error that says "The operation failed. An object could not be found." ...

I have included a screenshot of my Outlook structure if it helps ...

Imports Microsoft.Office.Interop

Public Class ThisAddIn
    Private Sub ThisAddIn_Startup() Handles Me.Startup
    End Sub
    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    End Sub
    Private Sub Application_Startup() Handles Application.Startup

        Dim MyApp As Outlook.Application = New Outlook.Application
        Dim MyNS As Outlook.NameSpace = MyApp.GetNamespace("MAPI")
        Dim MyInbox As Outlook.MAPIFolder = MyNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
        Dim MyEmails As Integer = MyInbox.Items.Count
        Dim MyEMail As Outlook.MailItem
        Dim MyCount As Integer
        Dim MySubFolder As Outlook.MAPIFolder = MyNS.Folders("Kickabout") [b]<<< Error occurs here[/b]

        For MyCount = MyEmails To 1 Step -1
            MyEMail = MyInbox.Items(MyCount)
            If MyEMail.SenderEmailAddress = "MrX@abc.com" Then
                If MyEMail.Attachments.Count > 0 Then
                    MySubFolder = MyNS.Folders("Kickabout\Attachments")
                End If
                MyEMail.Move(MySubFolder)
            End If
        Next
    End Sub

End Class

Attached image(s)

  • Attached Image


Is This A Good Question/Topic? 0
  • +

Replies To: Outlook program to store Attachments

#2 vodkasoda  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 03-October 12

Re: Outlook program to store Attachments

Posted 05 October 2012 - 05:16 AM

OK, I have solved this myself ... if anybody is interested in the future, you have to be quite explicit in setting up the path & need a Function to do so, here is the code ...

Imports Microsoft.Office.Interop

Public Class ThisAddIn

    Dim strFolderPath As String

    Private Sub ThisAddIn_Startup() Handles Me.Startup
    End Sub
    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    End Sub
    Private Sub Application_Startup() Handles Application.Startup

        Dim MyApp As Outlook.Application = New Outlook.Application
        Dim MyNS As Outlook.NameSpace = MyApp.GetNamespace("MAPI")
        Dim MyInbox As Outlook.MAPIFolder = MyNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
        Dim MyEmails As Integer = MyInbox.Items.Count
        Dim MyEMail As Outlook.MailItem
        Dim MyCount As Integer
        Dim MySubFolder As Outlook.Folder = GetMyFolder("Outlook (Gary)\Kickabout")
        Stop
        For MyCount = MyEmails To 1 Step -1
            MyEMail = MyInbox.Items(MyCount)
            If MyEMail.SenderEmailAddress = "MrX@abc.com" Then
                If MyEMail.Attachments.Count > 0 Then
                    MySubFolder = GetMyFolder("Outlook (Gary)\Kickabout\Attachments")
                End If
                MyEMail.Move(MySubFolder)
            End If
        Next
    End Sub

    Function GetMyFolder(FolderPath)
        ' folder path needs to be something like 
        '   "Public Folders\All Public Folders\Company\Sales"
        Dim aFolders
        Dim fldr
        Dim i
        Dim objNS

        On Error Resume Next
        strFolderPath = Replace(FolderPath, "/", "\")
        aFolders = Split(FolderPath, "\")

        'get the Outlook objects
        ' use intrinsic Application object in form script
        objNS = Application.GetNamespace("MAPI")

        'set the root folder
        fldr = objNS.Folders(aFolders(0))

        'loop through the array to get the subfolder
        'loop is skipped when there is only one element in the array
        For i = 1 To UBound(aFolders)
            fldr = fldr.Folders(aFolders(i))
            'check for errors
            'If Err() <> 0 Then Exit Function
        Next
        GetMyFolder = fldr

        ' dereference objects
        objNS = Nothing
    End Function
End Class

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1