VBA Saatke kirju Excelist Outlooki kaudu

See õpetus näitab teile, kuidas saata Outlookist e -kirju Outlooki kaudu VBA abil.

Aktiivse töövihiku saatmine

1234567891011121314151617181920 Funktsioon SendActiveWorkbook (strTo kui string, strSubject kui string, valikuline strCC kui string, valikuline strBody kui string) kui BooleanVea korral Jätka järgmistDim appOutlook objektinaDim mItem kui objekt"looge Outlooki uus eksemplarMäära appOutlook = CreateObject ("Outlook.Application")Määra mItem = appOutlook .CreateItem (0)Koos mItemiga.To = strTo.CC = "".Aine = strSubject.Keha = strBody.Attachments.Lisage ActiveWorkbook.FullName'kasutage saatmiseks kohe saatmiseks või kuva kuvamiseks ekraanil.Display 'või .SendLõpeta"puhastage esemeidMäära mItem = Mitte midagiSet appOutlook = Mitte midagiLõppfunktsioon

Ülaltoodud funktsiooni saab kutsuda alltoodud protseduuri abil

123456789101112131415 Sub SendMail ()Hämarda stringinaDim strSubject kui stringDim strBody kui string'täitke muutujadstrTo = "[email protected]"strSubject = "Finantsfail on manuses"strBody = "mõni tekst läheb siia e -kirja sisu jaoks"'helistage e -kirja saatmiseks sellele funktsioonileKui SendActiveWorkbook (strTo, strSubject,, strBody) = true siisSõnumikast "E -posti loomise õnnestumine"MuiduMsgbox "E -posti loomine ebaõnnestus!"Lõpetage, kuiEnd Sub

Varase sidumise kasutamine Outlooki objektiteegile viitamiseks

Ülaltoodud kood kasutab Outlooki objektile viitamiseks hilist sidumist. Saate lisada viite Excelile ja deklareerida Outlooki rakenduse ja Outlooki meiliüksuse, kasutades eelistatud sidumist. Varajane sidumine kiirendab koodi töötamist, kuid piirab teid, kuna kasutajal peab arvutis olema sama Microsoft Office'i versioon.

Viidete dialoogiboksi kuvamiseks klõpsake menüüd Tööriistad ja viited.

Lisage viide Microsoft Outlooki objektiteeki kasutatava Office'i versiooni jaoks.

Seejärel saate koodi muuta, et neid viiteid otse kasutada.

Varajase sidumise suur eelis on ripploendid, mis näitavad teile saadaolevaid objekte!

Ühe lehe saatmine aktiivsest töövihikust

Ühe lehe saatmiseks peate esmalt looma olemasolevast töövihikust uue töövihiku, kus on just see leht, ja seejärel saatke see leht.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 Funktsioon SendActiveWorksheet (strTo kui string, strSubject kui string, valikuline strCC kui string, valikuline strBody kui string) kui BooleanViga GoTo eh'deklareerige muutujad nõutavate objektide hoidmiseksDim wbDestination As WorkbookDim strDestName kui stringDim wbSource kui töövihikDim wsSource kui töölehtDim OutApp objektinaDim OutMail kui objektDim strTempName kui stringDim strTempPath stringina"looge esmalt sihtkoha töövihikMäära wbDestination = Töövihikud. LisastrDestName = wbDestination.Name'määrake allika töövihik ja lehtMäära wbSource = ActiveWorkbookMäära wsSource = wbSource.ActiveSheet'kopeerige tegevusleht uude töövihikussewsSource.Copy After: = Töövihikud (strDestName). Lehed (1)"salvestage ajutise nimegastrTempPath = Keskkond $ ("temp") & "\"strTempName = "Loend saadi saidist" & wbSource.Name & ".xlsx"Koos wbDestination.SaveAs strTempPath & strTempName'saatke nüüd sihtkoha töövihik e -postigaSet OutApp = CreateObject ("Outlook.Application")Määra OutMail = OutApp.CreateItem (0)Koos OutMailiga.To = strTo.Aine = strSubject.Keha = strBody.Attachments.Add wbDestination.FullName'kasutage saatmiseks kohe saatmiseks või kuva kuvamiseks ekraanil.Display 'või .DisplayLõpeta.Sulge valeLõpetakustutage oma kirjale lisatud ajutine töövihikTappa strTempPath & strTempNamemälu vabastamiseks puhastage esemedMäära wbDestination = Mitte midagiMäära wbSource = Mitte midagiMäära wsSource = Mitte midagiSet OutMail = Mitte midagiSet OutApp = Mitte midagiVälju funktsiooneh:MsgBoxi viga. KirjeldusLõppfunktsioon

ja selle funktsiooni käivitamiseks saame luua järgmise protseduuri

12345678910111213 Sub SendSheetMail ()Hämarda stringinaDim strSubject kui stringDim strBody kui stringstrTo = "[email protected]"strSubject = "Finantsfail on manuses"strBody = "mõni tekst läheb siia e -kirja sisu jaoks"Kui SendActiveWorksheet (strTo, strSubject,, strBody) = Tõene siisMsgBox "E -posti loomise edu"MuiduMsgBox "E -posti loomine ebaõnnestus!"Lõpp KuiEnd Sub
wave wave wave wave wave