Controlați Outlook din Excel utilizând VBA în Microsoft Excel

Anonim

Cele două exemple de macro-uri de mai jos arată cum puteți trimite informații către Outlook
(de exemplu, trimiterea unui mesaj de e-mail) și modul în care puteți prelua informații din Outlook
(de exemplu, recuperarea unei liste cu toate mesajele din Mesaje primite).

Notă! Citiți și editați exemplul de cod înainte de a încerca să-l executați în propriul dvs. proiect!

„necesită o referință la Biblioteca de obiecte Microsoft Outlook 8.0 Sub SendAnEmailWithOutlook ()” creează și trimite un nou mesaj de e-mail cu Outlook Dim OLF Ca Outlook.MAPIFolder, olMailItem Ca Outlook.MailItem Dim ToContact As Outlook.Recipient Set OLF = GetObject ( "", _ "Outlook.Application"). GetNamespace ("MAPI"). GetDefaultFolder (olFolderInbox) Set olMailItem = OLF.Items.Add 'creează un nou mesaj de e-mail Cu olMailItem .Subject = "Subiect pentru noul e- mesaj poștal "'mesaj subiect Set ToContact = .Recipients.Add (" [email protected] ")' add a recipient Set ToContact = .Recipients.Add (" [email protected] ") 'add a recipient ToContact.Type = olCC 'set the latest recipient as CC Set ToContact = .Recipients.Add ("[email protected]")' add a recipient ToContact.Type = olBCC 'set the latest recipient as BCC .Body = "Acesta este textul mesajului" & Chr (13) "textul mesajului cu o întrerupere de linie. Atașamente. Adăugați" C: \ FolderName \ Filename.txt ", olByValue,, _" Atașament "'introduceți atașamentul'. Atașamente.Adăugați" C : \ FolderName \ Filename.txt ", olByReference,, _" Comandă rapidă către atașament "'insert shortcut' .Attachments.Add" C: \ FolderName \ Filename.txt ", olEmbeddedItem,, _" Embedded Attachment "'atașament încorporat'. Attachments.Add "C: \ FolderName \ Filename.txt", olOLE,, _ "OLE Attachment" 'OLE attachment .OriginatorDeliveryReportRequested = True' confirmare livrare .ReadReceiptRequested = True 'confirmare citire' .Save 'salvează mesajul pentru editare ulterioară. Trimiteți trimite mesajul de poștă electronică (îl pune în Căsuța de ieșire) Terminați cu Set ToContact = Nimic setat OLMailItem = Nimic setat OLF = Nimic Terminare Sub Sub ListAllItemsInInbox () Dim OLF Ca Outlook.MAPIFolder, CurrUser Ca șir Dim EmailItemCount Ca întreg, În calitate de număr întreg, trimiteți un e-mail ca număr întreg Application.ScreenUpdating = False Workbooks.Add 'create a new workbook' add headings Cells (1, 1) .Formula = "Subject" Cells (1, 2) .Formula = "Received" Cells (1 , 3) .Formula = "Atașamente" Celule (1, 4) .Formula = "Citire" Cu Range ("A1: D1"). Font .Bold = True .Si ze = 14 Termină cu Application.Calculation = xlCalculationManual Set OLF = GetObject ("", _ "Outlook.Application"). GetNamespace ("MAPI"). GetDefaultFolder (olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 'citiți informații despre e-mail În timp ce i <EmailItemCount i = i + 1 Dacă i Mod 50 = 0 Apoi Application.StatusBar = "Citirea mesajelor e-mail" & Format _ (i / EmailItemCount, "0%") & "… "Cu OLF.Items (i) EmailCount = EmailCount + 1 Cells (EmailCount + 1, 1) .Formula = .Subject Cells (EmailCount + 1, 2) .Formula = Format (.ReceivedTime," dd.mm.yyyy hh: mm ") Celule (EmailCount + 1, 3) .Formula = .Attachments.Count Cells (EmailCount + 1, 4) .Formula = Nu. UnRead End With Wend Application.Calculation = xlCalculationAutomatic Set OLF = Nothing Coloane (" A: D "). Gama AutoFit (" A2 "). Selectați ActiveWindow.FreezePanes = True ActiveWorkbook.Saved = True Application.StatusBar = False End Sub