Kontroluj Outlooka z Excela za pomocą VBA w Microsoft Excel

Anonim

Poniższe dwa przykładowe makra pokazują, w jaki sposób można wysyłać informacje do programu Outlook
(np. wysyłanie wiadomości e-mail) i jak możesz pobrać informacje z Outlooka
(np. pobieranie listy wszystkich wiadomości w skrzynce odbiorczej).

Notatka! Przeczytaj i edytuj przykładowy kod, zanim spróbujesz go wykonać we własnym projekcie!

' wymaga odwołania do biblioteki obiektów Microsoft Outlook 8.0 Sub SendAnEmailWithOutlook() ' tworzy i wysyła nową wiadomość e-mail z 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 ' tworzy nową wiadomość e-mail With olMailItem .Subject = "Temat nowego e- mail message" ' temat wiadomości Set ToContact = .Recipients.Add("[email protected]") ' dodaj odbiorcę Set ToContact = .Recipients.Add("[email protected]") ' dodaj odbiorcę ToContact.Type = olCC ' ustaw ostatniego odbiorcę jako CC Set ToContact = .Recipients.Add("[email protected]") ' dodaj odbiorcę ToContact.Type = olBCC ' ustaw ostatniego odbiorcę jako BCC .Body = "To jest tekst wiadomości" & Chr (13) ' tekst wiadomości z podziałem wiersza .Attachments.Add "C:\FolderName\Filename.txt", olByValue, , _ "Attachment" 'wstaw załącznik ' .Attachments.Add "C :\FolderName\Filename.txt", olByReference, , _ "Skrót do załącznika" ' wstaw skrót ' .Attachments.Add "C:\FolderName\Filename.txt", olEmbeddedItem, , _ "Embedded Attachment" ' osadzony załącznik ' . Attachments.Add "C:\FolderName\Filename.txt", olOLE, , _ "OLE Attachment" 'Załącznik OLE .OriginatorDeliveryReportRequested = True 'potwierdzenie dostarczenia .ReadReceiptRequested = True 'potwierdzenie odczytu '.Save ' zapisuje wiadomość do późniejszej edycji . Wyślij ' wysyła wiadomość e-mail (umieszcza ją w skrzynce nadawczej) End With Set ToContact = Nic Set olMailItem = Nic nie ustawiono OLF = Nic End 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 ' utwórz nowy skoroszyt ' dodaj nagłówki Cells (1, 1).Formula = "Temat" Cells (1, 2).Formula = "Otrzymane" Cells(1 , 3).Formula = "Załączniki" Cells(1, 4).Formula = "Odczyt" z zakresem("A1:D1").Font .Bold = True .Si ze = 14 Koniec z Application.Calculation = xlCalculationManual Set OLF = GetObject("", _ "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) EmailItemCount = OLF.Items.Count i = 0: EmailCount = 0 'odczytaj informacje e-mail While i < EmailItemCount i = i + 1 If i Mod 50 = 0 Then Application.StatusBar = "Czytanie wiadomości e-mail" & _ 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.rrrr hh: mm") Cells(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