Makro VBA, ktoré používa údaje z wordového dokumentu a excelového zošita na odosielanie správ z Outlooku

Súhrn

V tomto článku sa popisuje makro jazyka Visual Basic for Applications, ktoré používa údaje z dokumentu programu Microsoft Word a zošita programu Microsoft Excel na odosielanie správ z Microsoft Outlooku.

Ďalšie informácie

Spoločnosť Microsoft poskytuje príklady programovacieho systému iba na ilustráciu bez záruky vyjadrené alebo implicitné. Toto zahŕňa, ale nie je obmedzené na implikované záruky obchodovateľnosti alebo vhodnosti na konkrétny účel. V tomto článku sa predpokladá, že ste oboznámení s prejaveným programovacím jazykom a s nástrojmi, ktoré sa používajú na vytváranie a ladenie procedúr. Pracovníci technickej podpory spoločnosti Microsoft vám môžu pomôcť vysvetliť funkčnosť konkrétneho postupu, ale tieto príklady nebudú upravovať, aby poskytovali pridanú funkčnosť alebo vybudovali postupy na splnenie konkrétnych požiadaviek. Nasledujúci príklad predpokladá, že v hárku sú dva definované názvy:

  • Prvý definovaný názov, "subjectcell", odkazuje na bunku, ktorá obsahuje predmet správy (napríklad "ide o testovaciu správu.").

  • Druhý definovaný názov, "tolist", odkazuje na prvú bunku v horizontálnom zozname, ktorá obsahuje zoznam príjemcov (napríklad "John Doe", "Jane Doe", a tak ďalej).

Musíte mať aj dokument programu Microsoft Word. Text tohto dokumentu používa makro ako telo správy v e-mailovej správe.

Sub SendOutlookMessages() 'Dimension variables. Dim OL As Object, MailSendItem As Object Dim W As Object Dim MsgTxt As String, SendFile As String Dim ToRangeCounter As Variant 'Identifies Word file to send SendFile = Application.GetOpenFilename(Title:="Select MS Word " & _     "file to mail, then click 'Open'", buttontext:="Send", _     MultiSelect:=False) 'Starts Word session Set W = GetObject(SendFile) 'Pulls text from file for message body MsgTxt = W.Range(Start:=W.Paragraphs(1).Range.Start, _    End:=W.Paragraphs(W.Paragraphs.Count).Range.End) 'Ends Word session Set W = Nothing 'Starts Outlook session Set OL = CreateObject("Outlook.Application") Set MailSendItem = OL.CreateItem(olMailItem) ToRangeCounter = 0 'Identifies number of recipients for To list. For Each xCell In ActiveSheet.Range(Range("tolist"), _     Range("tolist").End(xlToRight))     ToRangeCounter = ToRangeCounter + 1 Next xCell If ToRangeCounter = 256 Then ToRangeCounter = 1 'Creates message With MailSendItem     .Subject = ActiveSheet.Range("subjectcell").Text     .Body = MsgTxt     'Creates "To" list     For Each xRecipient In Range("tolist").Resize(1, ToRangeCounter)         RecipientList = RecipientList & ";" & xRecipient     Next xRecipient     .To = RecipientList     .Send End With 'Ends Outlook session Set OL = NothingEnd Sub

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Ďakujem za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×