Questa macro mostra come sia posibile leggere della mail (file .msg) archiviati all'interno di una cartella del PC; usa
questa procedura per leggere l'elenco delle mail da analizzare.
Sub Leggi_Mail_Da_Cartella()
Set Fa =
ActiveSheet
Set Outlook = CreateObject("Outlook.
Application")
'cancella elenco precedente
Rf =
Range("B:B").
SpecialCells(
xlCellTypeLastCell).Row
If (Rf >= 5)
Then
Fa.
Range(
Rows(5),
Rows(Rf)).Delete
End If
Dim DirDaEsaminare
As String
DirDaEsaminare = AddBackSlash(
Range("c2"))
Dim ElencoFile
As New Collection
ScanDir ElencoFile, DirDaEsaminare, "*.msg", True
Ra = 5
Dim tFile
As Variant
For Each tFile
In ElencoFile
Fa.
Cells(Ra, 2) =
Replace(tFile, DirDaEsaminare, "")
Set tMail = Outlook.CreateItemFromTemplate(tFile)
Fa.
Cells(Ra, 3) = tMail.ConversationTopic
Fa.
Cells(Ra, 4) = tMail.ReceivedTime
Fa.
Cells(Ra, 5) = tMail.SenderName
Fa.
Cells(Ra, 6) = tMail.Body
'crea l'HiperLink per la cella "oggetto" per aprire il file
ActiveSheet.Hyperlinks.Add Anchor:=Fa.
Cells(Ra, 3),
Address:=tFile, _
TextToDisplay:=tMail.ConversationTopic
'formatta
Fa.
Range(
Cells(Ra, 2),
Cells(Ra, 6)).VerticalAlignment = xlTop
If (Fa.
Rows(Ra).RowHeight > 50)
Then
Fa.
Rows(Ra).RowHeight = 50
End If
Ra = Ra + 1
Next tFile
End Sub
Volendo analizzare anche gli allegati della mail è possibile modificare il codice aggiungendo le parti riportate sotto.
Gli allegati sono contenuti nell'insieme
.Attachments ma non possono essere "letti" direttamente, devono prima essere salvati in un cartella locale e poi aperti.
For Each tFile
In ElencoFile
...
Set Attachments = tMail.Attachments
For Each tAttachment
In Attachments
p = InStrRev(tAttachment hment.DisplayName, ".")
ExtA =
Mid(tAttachment.DisplayName, p + 1, 5)
myAttachment.SaveAsFile NomeFileTemp & "." & ExtA
Set Wbi = Workbooks.
Open(Filename:=NomeFileTemp & "." & ExtA, UpdateLinks:=False)
...
Wbi.
Close SaveChanges:=False
next tAttachment
next tFile
nel file di esempio è stata aggiunta una funzione che permette di avere il nome della cartella su cui è memorizzato il file, in questo caso quella in cui verranno cercate le mail.
Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.