Outlook Pickfolder senza sceglierlo
Hai un problema con Excel? 
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
Vuoi Approfondire?