Ez az oktatóanyag megmutatja, hogyan küldhet e -maileket az Excelből az Outlookon keresztül a VBA segítségével.
Az aktív munkafüzet elküldése
1234567891011121314151617181920 | Küldés funkcióHiba esetén Folytassa a következőtDim appOutlook objektumkéntDim mItem mint objektum"hozzon létre egy új Outlook -példánytAppOutlook = CreateObject beállítása ("Outlook.Application")MItem = appOutlook .CreateItem (0) beállításaAz mItemmel.To = strTo.CC = "".Tárgy = strSubject.Body = strBody.Attachments.Add ActiveWorkbook.FullName'használja a küldést azonnali küldéshez, vagy a kijelzőt, hogy megjelenjen a képernyőn.Kijelző 'vagy .KüldésVége ezzel'tisztítsa meg a tárgyakatSet mItem = SemmiSet appOutlook = SemmiVége funkció |
A fenti funkció az alábbi eljárással hívható meg
123456789101112131415 | Sub SendMail ()Dim strTo Mint karakterláncDim strSubject karakterlánckéntDim strBody mint karakterlánc'töltse ki a változókatstrTo = "[email protected]"strSubject = "Kérjük, csatolja a pénzügyi fájlt"strBody = "néhány szöveg ide kerül az e -mail törzséhez"'hívja a funkciót az e -mail elküldéséhezHa a SendActiveWorkbook (strTo, strSubject,, strBody) = igaz akkorMsgbox "Sikeres e -mail létrehozás"MásMsgbox "Az e -mail létrehozása sikertelen!"Vége, haEnd Sub |
A Korai kötés használata az Outlook objektumkönyvtárra való hivatkozáshoz
A fenti kód késői kötést használ az Outlook objektumra való hivatkozáshoz. Hozzáadhat egy hivatkozást az Excelhez, és szükség esetén deklarálhatja az Outlook alkalmazást és az Outlook levelező elemet a Korai kötés használatával. A korai kötés gyorsítja a kód futtatását, de korlátozza Önt, mivel a felhasználónak ugyanazt a Microsoft Office verziót kell használnia a számítógépén.
Kattintson az Eszközök menüre és a Referenciák hivatkozás párbeszédpanel megjelenítésére.
Adjon hozzá egy hivatkozást a Microsoft Outlook objektumkönyvtárához az Office által használt verzióhoz.
Ezután módosíthatja a kódot, hogy közvetlenül használja ezeket a hivatkozásokat.
A korai kötés nagy előnye a legördülő listák, amelyek a használható objektumokat mutatják be!
Egyetlen lap elküldése az aktív munkafüzetből
Egyetlen lap elküldéséhez először létre kell hoznia egy új munkafüzetet a meglévő munkafüzetből, csak abban a lapban, majd el kell küldenie ezt a lapot.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | Küldés funkcióOn Error GoTo eh'deklarálja a változókat a szükséges objektumok tárolásáraDim wbDestination As WorkbookDim strDestName Mint karakterláncDim wbSource As WorkbookDim wsSource munkalapkéntDim OutApp objektumkéntDim OutMail objektumkéntDim strTempName Mint karakterláncDim strTempPath karakterláncként'először hozzon létre cél munkafüzetetA wbDestination = Workbooks.Add beállításastrDestName = wbDestination.Name'állítsa be a forrás munkafüzetet és a lapotA wbSource = ActiveWorkbook beállításaÁllítsa be a wsSource = wbSource.ActiveSheet parancsot'másolja az aktív munkalapot az új munkafüzetbewsSource.Copy After: = Munkafüzetek (strDestName). Táblázatok (1)'mentse ideiglenes névvelstrTempPath = Környezet $ ("temp") & "\"strTempName = "A" & wbSource.Name & ".xlsx forrásból származó listaA wbDestination segítségével.SaveAs strTempPath & strTempName'most küldje el e -mailben a rendeltetési munkafüzetetSet OutApp = CreateObject ("Outlook.Application")Set OutMail = OutApp.CreateItem (0)Az OutMail segítségével.To = strTo.Tárgy = strSubject.Body = strBody.Attachments.Add wbDestination.FullName'használja a küldést azonnali küldéshez, vagy a kijelzőt, hogy megjelenjen a képernyőn.Display 'vagy .DisplayVége ezzel.Close HamisVége ezzel'törölje az e -mailhez csatolt ideiglenes munkafüzetetÖld meg az strTempPath & strTempName nevet'tisztítsa meg a tárgyakat a memória felszabadításáhozSet wbDestination = SemmiSet wbSource = SemmiSet wsSource = SemmiSet OutMail = SemmiSet OutApp = SemmiKilépés funkcióeh:MsgBox Err. LeírásVége funkció |
és ennek a funkciónak a futtatásához létrehozhatjuk a következő eljárást
12345678910111213 | SubSheetSheetMail ()Dim strTo Mint karakterláncDim strSubject karakterlánckéntDim strBody mint karakterláncstrTo = "[email protected]"strSubject = "Kérjük, csatolja a pénzügyi fájlt"strBody = "néhány szöveg ide kerül az e -mail törzséhez"Ha SendActiveWorksheet (strTo, strSubject,, strBody) = Igaz akkorMsgBox "Sikeres e -mail létrehozás"MásMsgBox "Az e -mail létrehozása sikertelen!"Vége HaEnd Sub |