VBA Slanje e -pošte iz programa Excel putem Outlooka

Ovaj vodič će vam pokazati kako slati e -poštu iz Excela putem Outlooka pomoću VBA.

Slanje aktivne radne bilježnice

1234567891011121314151617181920 Funkcija SendActiveWorkbook (strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) Kao BooleanUključeno Slijedi nastavak greškeDim appOutlook As ObjectZatamni stavku kao objekt'stvoriti novu instancu OutlookaPostavi appOutlook = CreateObject ("Outlook.Application")Postavi mItem = appOutlook .CreateItem (0)Sa mItem.To = strTo.CC = "".Predmet = strPredmet.Tijelo = strTijelo.Prilozi.Dodajte ActiveWorkbook.FullName'koristite send za slanje odmah ili prikaz za prikaz na ekranu.Display 'ili .SendZavrši s'očistiti predmetePostavite mItem = NištaPostavi appOutlook = NištaZavršna funkcija

Gornja funkcija se može pozvati pomoću donje procedure

123456789101112131415 Sub SendMail ()Dim strTo As StringDim strSubject As StringDim strBody Kao String'popunjavaju varijablestrTo = "[email protected]"strSubject = "U prilogu pronađite financijsku datoteku"strBody = "neki tekst ide ovdje za tijelo e -pošte"'pozovite funkciju za slanje e -pošteAko je SendActiveWorkbook (strTo, strSubject,, strBody) = true tadaMsgbox "Uspješno kreiranje e -pošte"DrugoMsgbox "Kreiranje e -pošte nije uspjelo!"Završi akoKraj podm

Korištenje Early Binding za pozivanje na Outlook knjižnicu objekata

Gornji kôd koristi Kasno vezivanje za upućivanje na Outlook objekt. Možete dodati referencu u Excel i po želji proglasiti Outlook aplikaciju i Outlook Mail stavku koristeći Early Binding. Rano vezivanje ubrzava rad koda, ali vas ograničava jer bi korisnik trebao imati istu verziju sustava Microsoft Office na svom računalu.

Pritisnite izbornik Alati i Reference da biste prikazali dijaloški okvir reference.

Dodajte referencu u biblioteku objekata Microsoft Outlook za verziju sustava Office koju koristite.

Zatim možete izmijeniti svoj kôd da biste izravno koristili ove reference.

Velika prednost ranog povezivanja su padajući popisi koji vam prikazuju objekte koji su dostupni za upotrebu!

Slanje jednog lista iz aktivne radne knjige

Da biste poslali jedan list, najprije morate iz postojeće radne knjige stvoriti novu radnu knjigu s tim listom, a zatim poslati taj list.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 Funkcija SendActiveWorksheet (strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) Kao BooleanUključeno Greška GoTo eh'deklariraju varijable za držanje potrebnih objekataZatamni wbDestination As WorkbookDim strDestName As StringZatamni wbSource kao radnu knjiguZatamni wsSource kao radni listZatamnite OutApp kao objektZatamnjivanje pošte kao objektaDim strTempName As StringZatamni strTempPath kao niz'prvo izradi odredišnu radnu knjiguPostavi wbDestination = Radne knjige.DodajstrDestName = wbDestination.Name'postavite izvornu radnu knjigu i listPostavite wbSource = ActiveWorkbookPostavite wsSource = wbSource.ActiveSheet'kopirajte aktivni list u novu radnu knjiguwsSource.Copy After: = Radne knjige (strDestName) .Listovi (1)'spremi s privremenim imenomstrTempPath = Environ $ ("temp") & "\"strTempName = "Popis dobiven iz" & wbSource.Name & ".xlsx"Uz wbDestination.Spremi kao strTempPath & strTempName'sada pošaljite radnu knjigu odredišta e -poštomPostavi OutApp = CreateObject ("Outlook.Application")Postavi OutMail = OutApp.CreateItem (0)Uz OutMail.To = strTo.Predmet = strPredmet.Tijelo = strTijelo.Prilozi.Dodajte wbDestination.FullName'koristite send za slanje odmah ili prikaz za prikaz na ekranu.Display 'ili .DisplayZavrši s.Zatvori NetačnoZavrši s'izbrišite privremenu radnu knjigu koju ste priložili svojoj poštiUbijte strTempPath & strTempName'očistite predmete kako biste oslobodili memorijuPostavi wbDestination = NištaPostavi wbSource = NištaPostavi wsSource = NištaPostavi OutMail = NištaPostavite OutApp = NištaIzlazna funkcijaEh:MsgBox Err.OpisZavršna funkcija

a za pokretanje ove funkcije možemo izraditi sljedeći postupak

12345678910111213 Sub SendSheetMail ()Dim strTo As StringDim strSubject As StringDim strBody Kao StringstrTo = "[email protected]"strSubject = "U prilogu pronađite financijsku datoteku"strBody = "neki tekst ide ovdje za tijelo e -pošte"Ako je SendActiveWorksheet (strTo, strSubject,, strBody) = IstinaMsgBox "Uspješno kreiranje e -pošte"DrugoMsgBox "Kreiranje e -pošte nije uspjelo!"Završi akoKraj podm
wave wave wave wave wave