Le due macro di esempio seguenti mostrano come inviare informazioni a Outlook
(ad es. inviare un messaggio di posta elettronica) e come recuperare informazioni da Outlook
(ad es. recupero di un elenco di tutti i messaggi nella Posta in arrivo).
Nota! Leggi e modifica il codice di esempio prima di provare a eseguirlo nel tuo progetto!
' richiede un riferimento alla libreria oggetti di Microsoft Outlook 8.0 Sub SendAnEmailWithOutlook() ' crea e invia un nuovo messaggio di posta elettronica con Outlook Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem Dim ToContact As Outlook.Recipient Set OLF = GetObject( "", _ "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) Set olMailItem = OLF.Items.Add ' crea un nuovo messaggio di posta elettronica Con olMailItem .Subject = "Oggetto per il nuovo e- mail message" ' oggetto del messaggio Set ToContact = .Recipients.Add("[email protected]") ' aggiungi un destinatario Set ToContact = .Recipients.Add("[email protected]") ' aggiungi un destinatario ToContact.Type = olCC ' imposta l'ultimo destinatario come CC Set ToContact = .Recipients.Add("[email protected]") ' aggiungi un destinatario ToContact.Type = olBCC ' imposta l'ultimo destinatario come BCC .Body = "Questo è il testo del messaggio" & Chr (13) ' il testo del messaggio con un'interruzione di riga .Attachments.Add "C:\FolderName\Filename.txt", olByValue, , _ "Attachment" 'inserisci allegato ' .Attachments.Add "C :\FolderName\Filename.txt", olByReference, , _ "Shortcut to Attachment" 'insert shortcut' .Attachments.Add "C:\FolderName\Filename.txt", olEmbeddedItem, , _ "Embedded Attachment" 'allegato incorporato' . Attachments.Add "C:\FolderName\Filename.txt", olOLE, , _ "OLE Attachment" ' OLE attachment .OriginatorDeliveryReportRequested = True ' conferma di consegna .ReadReceiptRequested = True ' conferma lettura '.Save ' salva il messaggio per successive modifiche . Send ' invia il messaggio di posta elettronica (lo mette nella Posta in uscita) End With Set ToContact = Nothing Set olMailItem = Nothing Set OLF = Nothing End Sub ListAllItemsInInbox() Dim OLF As Outlook.MAPIFolder, CurrUser As String Dim EmailItemCount As Integer, i As Integer, EmailCount As Integer Application.ScreenUpdating = False Workbooks.Add 'crea una nuova cartella di lavoro' aggiungi intestazioni Cells(1, 1).Formula = Cells "Oggetto"(1, 2).Formula = Cells "ricevute"(1 , 3).Formula = "Allegati" Celle(1, 4).Formula = "Leggi" con intervallo("A1:D1").Font .Bold = True .Si ze = 14 End With Application.Calculation = xlCalculationManual Set OLF = GetObject("", _ "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 ' legge le informazioni sulla posta elettronica While i < EmailItemCount i = i + 1 If i Mod 50 = 0 Then Application.StatusBar = "Lettura dei messaggi di posta elettronica " & _ Format(i / EmailItemCount, "0%") & "… " Con OLF.Items(i) EmailCount = EmailCount + 1 Cells(EmailCount + 1, 1).Formula = .Subject Cells(EmailCount + 1, 2).Formula = Format(.ReceivedTime, "gg.mm.aaaa hh: mm") Cells(EmailCount + 1, 3).Formula = .Attachments.Count Cells(EmailCount + 1, 4).Formula = Non .UnRead End With Wend Application.Calculation = xlCalculationAutomatic Set OLF = Nothing Columns("A:D ").AutoFit Range("A2").Select ActiveWindow.FreezePanes = True ActiveWorkbook.Saved = True Application.StatusBar = False End Sub