Note: The other languages of the website are Google-translated. Back to English
English English

 Jak odeslat e-mail více příjemcům v seznamu z aplikace Excel prostřednictvím aplikace Outlook?

Pokud máte ve sloupci listu více e-mailových adres a nyní chcete odeslat e-mail na tento seznam příjemců z aplikace Excel přímo, aniž byste otevřeli Outlook. V tomto článku budu hovořit o tom, jak odesílat e-maily více příjemcům z aplikace Excel najednou.

Posílejte e-maily více příjemcům z aplikace Excel pomocí kódu VBA

Pošlete e-mail více příjemcům s aktuálním sešitem jako přílohu pomocí kódu VBA


šipka modrá pravá bublina Posílejte e-maily více příjemcům z aplikace Excel pomocí kódu VBA

K odeslání zprávy více příjemcům najednou můžete použít kód VBA, postupujte takto:

1. Podržte stisknuté tlačítko ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2. klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Odesílejte e-maily více příjemcům

Sub sendmultiple()
'updateby Extendoffice
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Display
    End With
End Sub

3. A pak stiskněte F5 klíč k provedení tohoto kódu, vyskočí okno s výzvou, které vám připomene výběr seznamu adres, viz screenshot:

doc poslat více příjemcům 1

4. Pak klikněte na tlačítko OKa Outlook Zpráva Zobrazí se okno, kde můžete vidět, že všechny vybrané e-mailové adresy byly přidány do složky Na pole a poté můžete zadat předmět a napsat zprávu, viz screenshot:

doc poslat více příjemcům 2

5. Po dokončení zprávy klikněte Poslat tlačítko a tato zpráva bude odeslána těmto příjemcům v seznamu vašich listů.


šipka modrá pravá bublina Pošlete e-mail více příjemcům s aktuálním sešitem jako přílohu pomocí kódu VBA

Pokud potřebujete poslat zprávu více příjemcům s aktuálním sešitem jako přílohou, můžete použít následující kód VBA.

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Odesílejte e-maily více příjemcům s aktuálním sešitem jako přílohou

Sub EmailAttachmentRecipients()
'updateby Extendoffice
    Dim xOutlook As Object
    Dim xMailItem As Object
    Dim xRg As Range
    Dim xCell As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the arresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOutlook = CreateObject("Outlook.Application")
    Set xMailItem = xOutlook.CreateItem(0)
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    With xMailItem
        .To = xEmailAddr
        .CC = ""
        .Subject = ""
        .Body = ""
        .Attachments.Add ActiveWorkbook.FullName
        .Display
    End With
    Set xOutlook = Nothing
    Set xMailItem = Nothing
End Sub

3. Po vložení kódu stiskněte F5 klíč ke spuštění tohoto kódu a zobrazí se okno s výzvou, které vám připomene výběr adres, na které chcete odeslat zprávu, viz screenshot:

doc poslat více příjemcům 3

4. Pak klikněte na tlačítko OK tlačítko a Outlook Zpráva Zobrazí se okno, všechny e-mailové adresy byly přidány do složky Na pole a váš aktuální sešit byl vložen také jako příloha a poté můžete zadat předmět a napsat zprávu, viz screenshot:

doc poslat více příjemcům 4

5. Pak klikněte na tlačítko Poslat tlačítko pro odeslání této zprávy do seznamu příjemců s aktuálním sešitem jako přílohou.


Posílejte osobní e-maily více příjemcům s různými přílohami:

S Kutools pro Excel's Odeslat e-maily Díky této funkci můžete rychle odesílat osobní e-maily více příjemcům s různými přílohami z aplikace Excel prostřednictvím aplikace Outlook podle potřeby. Současně můžete zprávy CCC nebo Bcc posílat také konkrétní osobě. Klikněte a stáhněte si Kutools pro Excel!

doc posílat osobní e-maily 18 1


Související článek:

Jak odeslat osobní hromadné e-maily do seznamu z aplikace Excel prostřednictvím aplikace Outlook?


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
officetab dno
Komentáře (20)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
To je úžasné, přesně to, co chci. Existuje vůbec přidat funkci, kde můžete přidat zprávu do předmětu pomocí kódu.... Nechci nic ve schránce zpráv
Tento komentář byl moderátorem webu minimalizován
Ahoj, kód VBA mi funguje dobře, děkuji. Existuje nějaký způsob, jak bych mohl vytvořit buňku s tlačítkem, které spustí vyskakovací okno „vybrat seznam adresátů“? Jakeu
Tento komentář byl moderátorem webu minimalizován
Dobrý den, děkuji za kód. Existuje způsob, jak mohu vytvořit příkazové tlačítko v aplikaci Excel a poté kliknutím na toto tlačítko lze stejný list aplikace Excel odeslat více příjemcům jako přílohu.
Tento komentář byl moderátorem webu minimalizován
Jak to mohu provést pomocí řádku BCC?
Tento komentář byl moderátorem webu minimalizován
Ahoj Roberte,
Po spuštění kódu se otevře okno nové zprávy, stačí vložit řádek BCC pod záložku Option, viz následující snímek obrazovky:


Doufám, že vám to pomůže, děkuji!
Tento komentář byl moderátorem webu minimalizován
Nějaký způsob, jak to použít k odeslání ze sdíleného e-mailu? Zdá se, že nemohu vložit pole .SendOnBehalfOf.
Tento komentář byl moderátorem webu minimalizován
ahoj Každý měsíc bych měl poslat stejný e-mail pro různé poskytovatele, ale neměli by být ve stejném e-mailu..... jak bych mohl poslat stejný e-mail pro různé destinace, aniž by všichni měli stejný e-mail ?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Vinicius,
Chcete-li odeslat stejný e-mail více příjemcům samostatně, může vám pomoci následující článek, zobrazte si ho.
https://www.extendoffice.com/documents/excel/3560-excel-send-personalized-email.html
Tento komentář byl moderátorem webu minimalizován
Ráno,


Jsem nový ve snaze psát a používat makra v Excelu. Můj první pokus byl pokusit se vytvořit podmnožinu hromadného e-mailu z velkého hlavního seznamu. Vystřihl jsem a vložil první rutinu, pak jsem se ji pokusil použít, jediné, co udělal, bylo zvýraznění buněk, které jsem požadoval. nebyl vytvořen žádný e-mail aplikace Outlook, co jsem udělal špatně? Abych rozšířil svůj skutečný požadavek, opravdu chci zacílit e-maily podle PSČ nebo jiných podmnožin. jak vytvořím makro, které prohledá sloupec pro dané PSČ a vytvoří e-mail se všemi nalezenými příjemci?

děkuji

Steve
Tento komentář byl moderátorem webu minimalizován
Mám tento kód, můj problém je v tom, že vytváří jeden e-mail pro pokaždé, když podmínka není dokončena, ale chci dát všechny informace, které nedosahují podmínky, pouze do jednoho e-mailu

Sub EnviarCorreo()
Ztlumit OutApp jako objekt
Dim OutMail As Object
Dim lLastRow As Long
Dim lRow As Long
Ztlumit sSendTo jako řetězec
Dim sSendCC jako řetězec
Ztlumit sSendBCC jako řetězec
Dim sPředmět jako řetězec
Dim sTemp As String

Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon

' Podle potřeby změňte následující
sSendTo = ""
sSendCC = ""
sSendBCC = ""
sSubject = "Datum splatnosti dosaženo"

Nastavit OutMail = OutApp.CreateItem(0)

lLastRow = Cells(Rows.Count, 3).End(xlUp).Row
Pro lRow = 3 To lLastRow
If Cells(lRow, 9) <> "S" Potom
If Cells(lRow, 2) <= Date Then

On Error Resume Next
S OutMail
.To = sSendTo
Pokud sSendCC > "" Pak .CC = sSendCC
Pokud sSendBCC > "" Pak .BCC = sSendBCC
.Předmět = sPředmět

sTemp = "Ahoj!" & vbCrLf & vbCrLf
sTemp = sTemp & "Datum splatnosti bylo dosaženo"
sTemp = sTemp & "pro tento projekt:" & vbCrLf & vbCrLf


„TO CHCI OPAKOVAT NA E-MAILOVÉM TĚLE
' Předpokládá se, že název projektu je ve sloupci B
sTemp = sTemp & "ID:"
sTemp = sTemp & " " & Cells(lRow, 1)
sTemp = sTemp & " Popis: "
sTemp = sTemp & " " & Cells(lRow, 5)
sTemp = sTemp & "Vezměte prosím vhodné"
sTemp = sTemp & "akce." & vbCrLf & vbCrLf
sTemp = sTemp & "Děkuji!" & vbCrLf
'AŽ ZDE



.Tělo = sTemp
' Pokud chcete, změňte následující na .Odeslat
Odešlete zprávu bez předchozí kontroly
.Zobrazit
Konec s
Nastavte OutMail = nic

Cells(lRow, 9) = "S"
Cells(lRow, 10) = "E-mail odeslán dne: " & Now()
End If
End If
Další lRow
Nastavte OutApp = Nic
End Sub
Tento komentář byl moderátorem webu minimalizován
Je možné použít kód pro výběr CC ze seznamu stejným způsobem po výběru TO? Se stávajícím kódem není možné volit žádné CC stejným způsobem jako TO (hlavní adresy). 
Tento komentář byl moderátorem webu minimalizován
Ahoj Eugene, rád pomůžu. Stejným způsobem po výběru TO je možné použít kód pro výběr CC ze seznamu. A kód je v podstatě stejný jako kód TOs VBA. Měla by být provedena pouze jedna změna. Stačí změnit ".To = xEmailAddr" na ".Cc = xEmailAddr". Podívejte se prosím na snímek obrazovky. A zároveň si můžete vybrat CC a TO ze seznamu. Stačí, aby byly do kódu VBA zahrnuty „.To = xEmailAddr“ a „.Cc = xEmailAddr“. Vložte prosím následující kód do okna modulu.
Sub sendmultiple()
'aktualizovat od Extendoffice
Dim xOTApp jako objekt
Dim xMItem As Object
Dim xCell As Range
Dim xRg jako rozsah
Dim xEmailAddr jako řetězec
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Vyberte prosím seznam adres:", "Kutools pro Excel", xTxt, , , , , 8)
Pokud xRg není nic, pak Exit Sub
Nastavit xOTApp = CreateObject("Outlook.Application")
Pro každý xCell In xRg
If xCell.Value Like "*@*" Then
Pokud xEmailAddr = "" Pak
xEmailAddr = xCell.Value
Jiný
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
další
Nastavit xMItem = xOTApp.CreateItem(0)
S xMItem
.To = xEmailAddr
.Cc = xEmailAddr
.Zobrazit
Konec s
End Sub

Doufám, že to může vyřešit váš problém. Přeji hezký den. S pozdravem Mandy
Tento komentář byl moderátorem webu minimalizován
Snažím se přimět Excel, aby poslal e-mail více příjemcům a mohl získat vše, co potřebuji, ale odmítá vložit e-mailovou adresu do pole TO. Zde je kód, se kterým jsem pracoval. Může mi někdo pomoci zjistit, co dělám špatně? Díky moc!

Sub Macro1 ()
Zmenšit rozsah
Dim rngMyDataSet As Range
Dim Rng As Range
Ztlumit OutApp jako objekt
Dim OutMail As Object
Dim EmailSubject as String
Ztlumit EmailSendTo jako řetězec
Dim MailBody As String
Dim EmailRecipient as Range
Ztlumit podpis jako řetězec
Application.ScreenUpdating = False
S ActiveSheet
If .FilterMode Then .ShowAllData
Nastavit Rng = .Range("AK6", .Cells(.Rows.Count, 1).End(xlUp))
Konec s
Pro každou buňku rng v Rng
Pokud rngCell.Offset(0, 6) > 0 Pak

ElseIf rngCell.Offset(0, 5) > Evaluate("Today() +7") A _
rngCell.Offset(0, 5).Value <= Evaluate("Today() +30") Potom
rngCell.Offset(0, 6).Value = Datum

Set OutApp = CreateObject("Outlook.Application")
Nastavit OutMail = OutApp.CreateItem(0)

strbody = "Podle mých záznamů je vaše smlouva " & Range("A6").Value & " splatná ke kontrole na " & rngCell.Offset(0, 5).Value & vbNewLine & _
"Prosím, přečtěte si tuto smlouvu před příslušným datem a pošlete mi e-mail se všemi změnami, které v této smlouvě provedete. Pokud bude obnovena, vyplňte prosím krycí list smlouvy, který najdete ve složce Všichni, a zašlete mi novou původní smlouvu." "
EmailSendTo = rngCell.Offset(0, 0).Hodnota
EmailSubject = Listy("list1").Rozsah("A6").Hodnota
Podpis = "C:\Documents and Settings\" & Environ("rmm") & _
"\Application Data\Microsoft\Signatures\rm.htm"
On Error Resume Next
S OutMail
.To = EmailSendTo
.CC = "hhh@gmail.com"
.BCC = ""
.Předmět = Předmět e-mailu
.Tělo = strbody
.Zobrazit
Send_Value = Mail_Recipient.Offset(i - 1).Value
Konec s
Při chybě GoTo 0
Nastavte OutMail = nic
Nastavte OutApp = Nic

End If

Další rngCell
Application.ScreenUpdating = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Diano,
Možná můžete použít níže uvedený kód:

Sub Macro1()
Dim rngCell As Range
Dim Rng As Range
Dim OutApp As Object
Dim OutMail As Object
Dim EmailSubject As String
Dim EmailSendTo As String
Dim MailBody As String
Dim Signature As String
Application.ScreenUpdating = False
On Error Resume Next
With ActiveSheet
  If .FilterMode Then .ShowAllData
  Set Rng = .Range("AK6", .Cells(.Rows.Count, 1).End(xlUp))
End With
Set OutApp = CreateObject("Outlook.Application")
For Each rngCell In Rng
  If rngCell.Offset(0, 6) > 0 Then
    If rngCell.Offset(0, 5).Value > Evaluate("Today() +7") And _
       rngCell.Offset(0, 5).Value <= Evaluate("Today() +30") Then
      rngCell.Offset(0, 6).Value = Date
    End If
    Set OutMail = OutApp.CreateItem(0)
    MailBody = "According to my records, your contract " & Range("A6").Value & " is due for review on " & rngCell.Offset(0, 6).Value & vbNewLine & _
               "Please review this contract prior to the pertinent date and email me with any changes you make to this contract. If it is renewed, " & _
               "please fill out the Contract Cover Sheet which can be found in the Everyone folder and send me the new original contract."
    
    EmailSendTo = rngCell.Offset(2, 6).Value   'Please specify the row and column number of the addresses in the filtered data range,please change the number 2 and 6 to your need
    EmailSubject = Sheets("sheet1").Range("A6").Value
    Signature = "C:\Documents and Settings\" & Environ("rmm") & _
                "\Application Data\Microsoft\Signatures\rm.htm"
    With OutMail
      .To = EmailSendTo
      .CC = "hhh@gmail.com"
      .BCC = ""
      .Subject = EmailSubject
      .Body = MailBody
      .Recipients.ResolveAll
      .Display
    End With
  End If
Next rngCell
Set OutMail = Nothing
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub



EmailSendTo = rngCell.Offset(2, 6).Hodnota, měli byste změnit číslo 2 a 6 na číslo řádku a sloupce na základě rozsahu dat, tento rozsah obsahuje e-mailové adresy, na které chcete posílat.

Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Děkuji, ale bohužel to nefungovalo. Stále mám stejné výsledky.
Tento komentář byl moderátorem webu minimalizován
Ahoj, Diano,
V takovém případě nám poskytněte snímek obrazovky nebo přílohu s daty listu, abychom mohli určit, kde je problém.
Nebo můžete svůj problém popsat jasněji a podrobněji.
Děkuji!
Tento komentář byl moderátorem webu minimalizován
Níže je uveden aktuální kód, který používám, ale nevloží každou e-mailovou adresu do pole TO, pouze první e-mailovou adresu ve všech z nich. Také dělá to samé s PŘEDMĚTEM a v e-mailové zprávě, jen to znovu a znovu používá to samé. Nejsem si jistý, jak k tomuto e-mailu připojit tabulku.

Sub Macro1 ()
Zmenšit rozsah
Dim rngMyDataSet As Range
Dim Rng As Range
Ztlumit OutApp jako objekt
Dim OutMail As Object
Dim EmailSubject as String
Ztlumit EmailSendTo jako řetězec
Dim MailBody As Range
Dim EmailRecipient as Range
Ztlumit podpis jako řetězec
Application.ScreenUpdating = False
S ActiveSheet
If .FilterMode Then .ShowAllData
Nastavit Rng = .Range("AJ6", .Cells(.Rows.Count, 1).End(xlUp))
Konec s
Pro každou buňku rng v Rng
Pokud rngCell.Offset(0, 6) > 0 Pak

ElseIf rngCell.Offset(0, 5) > Evaluate("Today() +7") A _
rngCell.Offset(0, 5).Value <= Evaluate("Today() +120") Potom
rngCell.Offset(0, 6).Value = Datum

Set OutApp = CreateObject("Outlook.Application")
Nastavit OutMail = OutApp.CreateItem(0)

strbody = "Podle mých záznamů je vaše smlouva " & Range("A6").Value & " splatná ke kontrole " & rngCell.Offset(0, 5).Value & _
". Je důležité, abyste si tuto smlouvu co nejdříve přečetli a zaslali mi e-mail se všemi provedenými změnami. Pokud bude obnovena, vyplňte prosím krycí list smlouvy, který najdete ve složce Všichni, a zašlete mi krycí list spolu s novou původní smlouvou ."
EmailSendTo = Sheets("sheet1").Range("AJ6").Hodnota
EmailSubject = Listy("list1").Rozsah("A6").Hodnota
Podpis = "C:\Documents and Settings\" & Environ("rmm") & _
"\Application Data\Microsoft\Signatures\rm.htm"
On Error Resume Next
S OutMail
.To = EmailSendTo
.CC = "hhh@gmail.com"
.BCC = ""
.Předmět = Předmět e-mailu
.Tělo = strbody
.Zobrazit
Send_Value = Mail_Recipient.Offset(i - 1).Value
Konec s
Při chybě GoTo 0
Nastavte OutMail = nic
Nastavte OutApp = Nic

End If

Další rngCell
Application.ScreenUpdating = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj,
Zde můžete vložit svůj sešit jako přílohu, viz níže uvedený snímek obrazovky:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-attachment-1.png
Děkuji!
Tento komentář byl moderátorem webu minimalizován
Na mém konci není pole „Nahrát přílohu“.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Diano,
Pokud zde není políčko „Nahrát přílohu“, měli byste se nejprve zaregistrovat a poté se zobrazí možnost „Nahrát přílohu“.
Chcete-li se zaregistrovat, přejděte na začátek článku a klikněte Zaregistrujte se pro spuštění.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-register.png
Omlouvám se za nepříjemnost.
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění