VBA makro, mis kasutab andmeid Wordi dokumendist ja Exceli töövihikust sõnumite saatmiseks Outlookist

Kokkuvõte

Selles artiklis kirjeldatakse Visual Standard for Applications makrot, mis kasutab Microsoft Wordi dokumendist ja Microsoft Exceli töövihikust Microsoft Outlookist sõnumite saatmiseks andmeid.

Lisateave

Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, kuid mitte otseseid ega kaudseid. See hõlmab, kuid mitte ainult, kaudseid garantiisid kaubandusliku või sobivuse teatud otstarbeks. Selles artiklis eeldatakse, et olete kursis programmeerimiskeelega, mida näidatakse ning kus on kasutatud tööriistu, mida kasutatakse toimingute loomiseks ja silumiseks. Microsofti tugiteenuste insenerid aitavad selgitada konkreetse protseduuri funktsioone, kuid nad ei muuda neid näiteid, et lisada teie vajadustele vastavaid funktsioone või koostada toiminguid. Järgmises näites eeldatakse, et töölehel on kaks määratletud nime.

  • Esimene määratletud nimi "subjectcell" viitab lahtrile, mis sisaldab Sõnumi teemarida (nt "see on test sõnum").

  • Teine määratletud nimi "tolist" viitab selle horisontaalse loendi esimesele lahtrile, mis sisaldab adressaatide loendit (nt "John Doe", "Jane Doe" jne).

Teil peab olema ka Microsoft Wordi dokument. Makro kasutab selle dokumendi teksti meilisõnumi sõnumi sisuna.

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

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×