Kontroller Outlook fra Excel ved hjelp av VBA i Microsoft Excel

Anonim

De to eksempelmakroene nedenfor viser hvordan du kan sende informasjon til Outlook
(f.eks. sende en e-postmelding) og hvordan du kan hente informasjon fra Outlook
(f.eks. hente en liste over alle meldinger i innboksen).

Merk! Les og rediger eksempelkoden før du prøver å utføre den i ditt eget prosjekt!

'krever en referanse til Microsoft Outlook 8.0 Object Library Sub SendAnEmailWithOutlook ()' oppretter og sender en ny e-postmelding med 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 'oppretter en ny e-postmelding Med olMailItem .Subject = "Emne for den nye e- e -postmelding "'message subject Set ToContact = .Recipients.Add (" [email protected] ")' legg til en mottaker Set ToContact = .Recipients.Add (" [email protected] ") 'legg til en mottaker ToContact.Type = olCC 'angi siste mottaker som CC Set ToContact = .Recipients.Add ("[email protected]")' legg til en mottaker ToContact.Type = olBCC 'sett siste mottaker som BCC .Body = "Dette er meldingsteksten" & Chr (13) 'meldingsteksten med et linjeskift .Attachments.Add "C: \ FolderName \ Filename.txt", olByValue,, _ "Vedlegg" "sett inn vedlegg" .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' leveringsbekreftelse .ReadReceiptRequested = True 'lesebekreftelse' .Save 'lagrer meldingen for senere redigering. Send 'sender e-postmeldingen (setter den i utboksen) Slutt 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' legg til overskrifter Celler (1, 1) .Formula = "Subject" Cells (1, 2) .Formula = "Mottatte" celler (1 , 3) .Formula = "Vedlegg" Celler (1, 4) .Formula = "Les" Med område ("A1: D1"). Font .Bold = True .Si ze = 14 Slutt med Application.Calculation = xlCalculationManual Set OLF = GetObject ("", _ "Outlook.Application"). GetNamespace ("MAPI"). GetDefaultFolder (olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 'lese e-postinformasjon Mens i <EmailItemCount i = i + 1 If i Mod 50 = 0 Deretter Application.StatusBar = "Lese e-postmeldinger" & _ Format (i / EmailItemCount, "0%") & "… "With OLF.Items (i) EmailCount = EmailCount + 1 Cells (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 "). Velg ActiveWindow.FreezePanes = True ActiveWorkbook.Saved = True Application.StatusBar = False End Sub