VBA Pošlji e -pošto iz Excela prek Outlooka

Ta vadnica vam bo pokazala, kako pošiljati e -pošto iz Excela prek Outlooka z uporabo VBA.

Pošiljanje aktivnega delovnega zvezka

1234567891011121314151617181920 Funkcija SendActiveWorkbook (strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) Kot BooleanOn Napaka Nadaljuj NaprejDim appOutlook As ObjectZatemni element kot objekt'ustvarite nov primerek OutlookaNastavi appOutlook = CreateObject ("Outlook.Application")Nastavi mItem = appOutlook .CreateItem (0)S predmetom.To = strTo.CC = "".Subject = strSubject.Telo = strTelo.Priloge.Dodajte ActiveWorkbook.FullName'uporabite send za takojšnje pošiljanje ali prikaz za prikaz na zaslonu.Display 'ali .SendKončaj s"očistite predmeteNastavi mItem = NičNastavi appOutlook = NičKončana funkcija

Zgornjo funkcijo lahko pokličete po spodnjem postopku

123456789101112131415 Sub SendMail ()Dim strTo As StringZatemni strSubject As StringZatemni strBody As String'napolni spremenljivkestrTo = "[email protected]"strSubject = "Najdi priloženo finančno datoteko"strBody = "tukaj gre nekaj besedila za telo e -pošte"'pokličite funkcijo za pošiljanje e -pošteČe je SendActiveWorkbook (strTo, strSubject,, strBody) = true, potemMsgbox "Ustvarjanje e -pošte je uspešno"Sicer paMsgbox "Ustvarjanje e -pošte ni uspelo!"Konec, čeEnd Sub

Uporaba zgodnje vezave za sklicevanje na knjižnico objektov Outlook

Zgornja koda uporablja pozno vezavo za sklicevanje na Outlook objekt. Lahko dodate sklic na Excel in po želji z zgodnjo vezavo razglasite aplikacijo Outlook in Outlookovo poštno postavko. Zgodnja vezava pospešuje izvajanje kode, vendar vas omejuje, saj bi moral uporabnik imeti v računalniku isto različico programa Microsoft Office.

Kliknite meni Orodja in Sklici, da se prikaže pogovorno okno referenc.

Dodajte sklic na knjižnico objektov Microsoft Outlook za različico Officea, ki jo uporabljate.

Nato lahko spremenite svojo kodo, da uporabite te reference neposredno.

Velika prednost zgodnje vezave so spustni seznami, ki prikazujejo predmete, ki so na voljo za uporabo!

Pošiljanje enega lista iz aktivnega delovnega zvezka

Če želite poslati en list, morate najprej ustvariti nov delovni zvezek iz obstoječega delovnega zvezka, v katerem je le ta list, nato pa ta list poslati.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 Funkcija SendActiveWorksheet (strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) Kot BooleanNapaka GoTo eh'deklarirajte spremenljivke za shranjevanje zahtevanih predmetovZatemni wbDestination kot delovni zvezekZatemni strDestName kot nizZatemni wbSource kot delovni zvezekZatemni wsSource kot delovni listZatemni OutApp kot objektZatemni poštno pošto kot objektZatemni strTempName kot nizZatemni strTempPath kot niz'najprej ustvarite ciljni delovni zvezekNastavi wbDestination = Delovni zvezki.DodajstrDestName = wbDestination.Name'nastavite izvorni delovni zvezek in listNastavite wbSource = ActiveWorkbookNastavite wsSource = wbSource.ActiveSheet'kopiraj aktivni list v nov delovni zvezekwsSource.Copy After: = Delovni zvezki (strDestName) .Listi (1)'shrani z začasnim imenomstrTempPath = Environ $ ("temp") & "\"strTempName = "Seznam, pridobljen iz" & wbSource.Name & ".xlsx"Z wbDestination.SaveAs strTempPath & strTempName"zdaj pošljite ciljni delovni zvezek po e -poštiNastavi OutApp = CreateObject ("Outlook.Application")Nastavi OutMail = OutApp.CreateItem (0)Z OutMail.To = strTo.Subject = strSubject.Telo = strTelo.Priloge.Dodajte wbDestination.FullName'uporabite send za takojšnje pošiljanje ali prikaz za prikaz na zaslonu.Display 'ali .DisplayKončaj s.Zapri FalseKončaj s'izbrišite začasni delovni zvezek, ki ste ga priložili svoji poštiUbijte strTempPath & strTempName'očistite predmete, da sprostite spominNastavi wbDestination = NičNastavi wbSource = NičNastavi wsSource = NičNastavi OutMail = NičNastavi OutApp = NičIzhodna funkcijaeh:MsgBox Err. OpisKončana funkcija

in za zagon te funkcije lahko ustvarimo naslednji postopek

12345678910111213 Sub SendSheetMail ()Dim strTo As StringZatemni strSubject As StringZatemni strBody As StringstrTo = "[email protected]"strSubject = "Najdi priloženo finančno datoteko"strBody = "tukaj gre nekaj besedila za telo e -pošte"Če je SendActiveWorksheet (strTo, strSubject,, strBody) = True PotemMsgBox "Ustvarjanje e -pošte je uspešno"Sicer paMsgBox "Ustvarjanje e -pošte ni uspelo!"Konec ČeEnd Sub
wave wave wave wave wave