Styr Outlook fra Excel ved hjælp af VBA i Microsoft Excel

Anonim

De to eksempler på makroer nedenfor viser, hvordan du kan sende oplysninger til Outlook
(f.eks. afsendelse af en e-mail) og hvordan du kan hente oplysninger fra Outlook
(f.eks. hentning af en liste over alle meddelelser i indbakken).

Bemærk! Læs og rediger eksempelkoden, før du prøver at udføre den i dit eget projekt!

'kræver en reference til Microsoft Outlook 8.0 Object Library Sub SendAnEmailWithOutlook ()' opretter og sender en ny e-mail-besked med Outlook Dim OLF Som Outlook.MAPIFolder, olMailItem Som Outlook.MailItem Dim ToContact As Outlook.Recipient Set OLF = GetObject ( "", _ "Outlook.Application"). GetNamespace ("MAPI"). GetDefaultFolder (olFolderInbox) Set olMailItem = OLF.Items.Add 'opretter en ny e-mail med olMailItem .Subject = "Emne for den nye e- mailbesked "'meddelelsesemne Indstil ToContact = .Recipients.Add (" [email protected] ")' tilføj en modtager Set ToContact = .Recipients.Add (" [email protected] ") 'tilføj en modtager ToContact.Type = olCC 'indstil seneste modtager til CC Set ToContact = .Recipients.Add ("[email protected]")' tilføj en modtager ToContact.Type = olBCC 'sæt den seneste modtager som BCC .Body = "Dette er meddelelsesteksten" & Chr (13) 'meddelelsesteksten med et linjeskift .Attachments.Add "C: \ FolderName \ Filename.txt", olByValue,, _ "Bilag"' indsæt vedhæftet fil '.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' leveringsbekræftelse .ReadReceiptRequested = True 'læsbekræftelse' .Save 'gemmer meddelelsen til senere redigering. Send 'sender e-mail-meddelelsen (sætter den i udbakken) Slut 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' tilføj overskrifter Celler (1, 1) .Formula = "Subject" Cells (1, 2) .Formula = "Modtagne" Celler (1 , 3) .Formula = "Vedhæftninger" Celler (1, 4) .Formula = "Læs" Med område ("A1: D1"). Font .Bold = True .Si ze = 14 Slut med Application.Calculation = xlCalculationManual Set OLF = GetObject ("", _ "Outlook.Application"). GetNamespace ("MAPI"). GetDefaultFolder (olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 'læs e-mail-informationer Mens i <EmailItemCount i = i + 1 If i Mod 50 = 0 Herefter Application.StatusBar = "Læsning af e-mail-meddelelser" & _ 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 -område (" A2 "). Vælg ActiveWindow.FreezePanes = True ActiveWorkbook.Saved = True Application.StatusBar = False End Sub