Styr Outlook från Excel med VBA i Microsoft Excel

Anonim

De två exempelmakronen nedan visar hur du kan skicka information till Outlook
(t.ex. att skicka ett e-postmeddelande) och hur du kan hämta information från Outlook
(t.ex. hämta en lista med alla meddelanden i inkorgen).

Notera! Läs och redigera exempelkoden innan du försöker köra den i ditt eget projekt!

'kräver en referens till Microsoft Outlook 8.0 Object Library Sub SendAnEmailWithOutlook ()' skapar och skickar ett nytt e-postmeddelande med Outlook Dim OLF Som 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 'skapar ett nytt e-postmeddelande med olMailItem .Subject = "Ämne för det nya e- e -postmeddelande "'meddelandeämne Ställ in ToContact = .Recipients.Add (" [email protected] ")' lägg till en mottagare Set ToContact = .Recipients.Add (" [email protected] ") 'lägg till en mottagare ToContact.Type = olCC 'ställ in den senaste mottagaren som CC Set ToContact = .Recipients.Add ("[email protected]")' lägg till en mottagare ToContact.Type = olBCC 'ställ in den senaste mottagaren som BCC .Body = "Detta är meddelandetexten" & Chr (13) 'meddelandetexten med en radbrytning .Attachments.Add "C: \ FolderName \ Filename.txt", olByValue,, _ "Bilaga" "infoga bilaga" .Attachments.Add "C : \ FolderName \ Filename.txt ", olByReference,," "Shortcut to Attachment" 'insert shortcut' .Attachments.Add "C: \ FolderName \ Filename.txt", olEmbeddedItem, _ "Embedded Attachment" 'embedded attachment'. Attachments.Add "C: \ FolderName \ Filename.txt", olOLE,, _ "OLE Attachment" 'OLE attachment .OriginatorDeliveryReportRequested = True' leveransbekräftelse .ReadReceiptRequested = True 'läsbekräftelse' .Save 'sparar meddelandet för senare redigering. Send 'skickar e-postmeddelandet (lägger det i utkorgen) Avsluta med Set ToContact = Nothing Set olMailItem = Nothing Set OLF = Nothing 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' lägg till rubriker Celler (1, 1) .Formula = "Subject" Cells (1, 2) .Formula = "Mottagna" celler (1 , 3) .Formula = "Bilagor" -celler (1, 4) .Formula = "Läs" Med intervall ("A1: D1"). Font .Bold = True .Si ze = 14 Avsluta med Application.Calculation = xlCalculationManual Set OLF = GetObject ("", _ "Outlook.Application"). GetNamespace ("MAPI"). GetDefaultFolder (olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 'läs e-postinformation medan i <EmailItemCount i = i + 1 If i Mod 50 = 0 Sedan Application.StatusBar = "Läser e-postmeddelanden" & _ Format (i / EmailItemCount, "0%") & "… "Med OLF.Items (i) EmailCount = EmailCount + 1 celler (EmailCount + 1, 1) .Formula = .Subject Cells (EmailCount + 1, 2) .Formula = Format (.ReceivedTime," dd.mm.åååå hh: mm ") Celler (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 -intervall (" A2 "). Välj ActiveWindow.FreezePanes = True ActiveWorkbook.Saved = True Application.StatusBar = False End Sub