Outlook Pickfolder senza sceglierlo



  • Outlook: Pickfolder senza sceglierlo
    di Grograman data: 17/11/2014 11:19:06

    Buongiorno a tutti!

    Sto iniziando un codice che salvi tutti gli allegati (uno per ogni mail) da tutte le mail contenute in una specifica cartella. Poi dovrò unzipparli e importarli in un foglio excel.
    ma andiamo per gradi!


    Scartabellando in rete ho riadattato un codice (ahimè ho perso la pagina della fonte quindi non posso citarla) che fa la prima operazione.
    Il problema è che devo selezionare la cartella da cui scaricare i files.
    Come posso modificare l'istruzione in modo che "Set olPurgeFolder = Outlook.GetNamespace("MAPI").PickFolder" non mi faccia selezionare una cartella, ma peschi SEMPRE le mail da una costante stringa tipo "\io.me@miazienda.itPosta in arrivoUfficioProva"

    Grazie anticipatament per qualsiasi idea!

    A seguire codice:
     
    ' ------------------------------------------------------------
    ' Requires the following references:
    '
    ' Visual Basic for Applications
    ' Microsoft Outlook 14.0 Object Library
    ' OLE Automation
    ' Microsoft Office 14.0 Object Library
    ' Microsoft Shell Controls and Automation
    ' ------------------------------------------------------------
    Option Explicit
    Public Sub Salva_SmartCard()
    
      ' Ask the user to select a file system folder for saving the attachments
      
      Dim msg As Outlook.MailItem
      Dim att As Outlook.Attachment
      Dim sSavePathFS As String
    
      Dim sSaveFolder As String, sOutFolder As String
      Dim i As Long
    
      'QUI MODIFICARE IL PERCORSO DOVE SALVARE I FILES
      sSaveFolder = "C:ProveFiles"
    
      
      ' Ask the user to select an Outlook folder to process
      Dim olPurgeFolder As Outlook.MAPIFolder
      Set olPurgeFolder = Outlook.GetNamespace("MAPI").PickFolder
    
      For Each msg In olPurgeFolder.Items
        ' Save the file
         If msg.Attachments.Count > 0 Then
           sSavePathFS = sSaveFolder & msg.Attachments(1).FileName
           msg.Attachments(1).SaveAsFile sSavePathFS
         End If
      Next msg
    
      Set olPurgeFolder = Nothing
    End Sub
    



  • di scossa data: 17/11/2014 14:30:37

    Devi riferirti alla struttura dei folders dell'oggetto Outlook.GetNamespace("MAPI")




    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



     
      Dim olPurgeFolder As Outlook.MAPIFolder
      Set olMAPI = Outlook.GetNamespace("MAPI")
      Set olPurgeFolder = olMAPI.CurrentUser.Session.Folders(tuonome@pippo.it").Folders("Posta in Arrivo")
    



  • di scossa data: 17/11/2014 14:33:12

    Manca una virgoletta nel codice, lo ripropongo:




    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

     
      Dim olPurgeFolder As Outlook.MAPIFolder
      Set olMAPI = Outlook.GetNamespace("MAPI")
      Set olPurgeFolder = olMAPI.CurrentUser.Session.Folders("pippo@disney.eu").Folders("Posta in Arrivo")
    



  • di Grograman data: 17/11/2014 14:59:05

    Grazie mille :)

    Ovviamente funzionante ;)

    Spunto come risolto e ora mi studio gli oggetti "namespace" che sono dei perfetti sconosciuti ad oggi :)

    Peccato non mi chiedano mai codici per outlook