Beheer Outlook vanuit Excel met VBA in Microsoft Excel

Anonim

De twee voorbeeldmacro's hieronder laten zien hoe u informatie naar Outlook kunt verzenden
(bijvoorbeeld het verzenden van een e-mailbericht) en hoe u informatie uit Outlook kunt ophalen
(bijvoorbeeld het ophalen van een lijst met alle berichten in de Inbox).

Opmerking! Lees en bewerk de voorbeeldcode voordat u deze in uw eigen project probeert uit te voeren!

' vereist een verwijzing naar de Microsoft Outlook 8.0 Object Library Sub SendAnEmailWithOutlook() ' maakt en verzendt een nieuw e-mailbericht met 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 ' maakt een nieuw e-mailbericht aan Met olMailItem .Subject = "Onderwerp voor de nieuwe e- mail message" ' onderwerp van bericht Set ToContact = .Recipients.Add("[email protected]") ' voeg een ontvanger toe Set ToContact = .Recipients.Add("[email protected]") ' voeg een ontvanger toe ToContact.Type = olCC ' stel de laatste ontvanger in als CC Set ToContact = .Recipients.Add ("[email protected]") ' voeg een ontvanger toe ToContact.Type = olBCC ' stel de laatste ontvanger in als BCC .Body = "Dit is de berichttekst" & Chr (13) ' de berichttekst met een regeleinde .Attachments.Add "C:\FolderName\Filename.txt", olByValue, , _ "Bijlage" ' bijlage invoegen ' .Attachments.Add "C :\FolderName\Filename.txt", olByReference, , _ "Snelkoppeling naar bijlage" 'snelkoppeling invoegen' .Attachments.Add "C:\FolderName\Filename.txt", olEmbeddedItem, , _ "Ingesloten bijlage" 'ingesloten bijlage' . Attachments.Add "C:\FolderName\Filename.txt", olOLE, , _ "OLE Attachment" ' OLE bijlage .OriginatorDeliveryReportRequested = True ' leveringsbevestiging .ReadReceiptRequested = True 'leesbevestiging'.Save ' slaat het bericht op voor latere bewerking. Verzenden ' verzendt het e-mailbericht (zet het in de Outbox) End With Set ToContact = Niets Set olMailItem = Niets Set OLF = Niets End Sub 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 ' Create a new workbook ' add headings Cells(1, 1).Formula = "Subject" Cells(1, 2).Formula = "Receved" Cells(1 , 3).Formula = "Bijlagen" Cellen (1, 4).Formula = "Lees" met bereik ("A1:D1").Lettertype .Bold = True .Si ze = 14 Eindigen met Application.Calculation = xlCalculationManual Set OLF = GetObject("", _ "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 ' e-mailinformatie lezen While i < EmailItemCount i = i + 1 If i Mod 50 = 0 Then Application.StatusBar = "E-mailberichten lezen" & _ Format(i / EmailItemCount, "0%") & "… " Met OLF.Items(i) EmailCount = EmailCount + 1 Cells(EmailCount + 1, 1).Formula = .Subject Cells(EmailCount + 1, 2).Formula = Format(.ReceivedTime, "dd.mm.yyyy hh: mm") Cellen(EmailCount + 1, 3).Formula = .Attachments.Count Cells(EmailCount + 1, 4).Formula = Not .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