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

Jak poslat e-mail, když kliknete na tlačítko v aplikaci Excel?

Jak předpokládáte, že potřebujete odesílat e-maily prostřednictvím Outlooku kliknutím na tlačítko v listu aplikace Excel? Tento článek podrobně představí metodu VBA.

Po kliknutí na tlačítko s kódem VBA odešlete e-mail


Po kliknutí na tlačítko s kódem VBA odešlete e-mail

Pokud kliknete na příkazové tlačítko v sešitu aplikace Excel, odešlete e-mail prostřednictvím aplikace Outlook.

1. Klepnutím vložte příkazové tlačítko do listu Vývojka > Vložit > Příkazové tlačítko (ovládání ActiveX). Viz snímek obrazovky:

2. Klepněte pravým tlačítkem na vložené příkazové tlačítko a poté klepněte na Zobrazit kód z nabídky pravého kliknutí, jak je uvedeno níže.

3. V otvoru Microsoft Visual Basic pro aplikace v okně Nahradit původní kód v okně Kód následujícím skriptem VBA.

Kód VBA: Odeslat e-mail, pokud kliknete na tlačítko v aplikaci Excel

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Poznámky:

1). Změňte prosím text e-mailu podle potřeby v xMailBody řádek v kódu.

2). Nahradit Emailová adresa s e-mailovou adresou příjemce v řádku .To = "E-mailová adresa".

3). Zadejte příjemce kopie a skryté kopie, jak potřebujete .CC = "" a .Skrytá kopie = „“ sekce.

4). Změňte předmět e-mailu v řádku .Subject = "Otestovat odeslání e-mailu kliknutím na tlačítko".

4. zmáčkni Další + Q současně zavřete Microsoft Visual Basic pro aplikace okno.

5. Vypněte návrhový režim kliknutím Vývojka > Režim návrhu. Viz snímek obrazovky:

Od této chvíle bude pokaždé, když kliknete na příkazové tlačítko, automaticky vytvořen e-mail se zadanými příjemci, předmětem a tělem. Zašlete prosím e-mail kliknutím na ikonu Poslat .

Poznámka: Kód VBA funguje, pouze když používáte Outlook jako svůj e-mailový program.

Snadno odesílejte e-maily prostřednictvím aplikace Outlook na základě polí vytvořeného seznamu adres v aplikaci Excel:

Projekt Odeslat e-maily užitečnost Kutools pro Excel pomáhá odesílat e-maily prostřednictvím aplikace Outlook na základě polí vytvořeného seznamu adres v aplikaci Excel.
Stáhněte si a vyzkoušejte! (30-denní stezka zdarma)


Související články:


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-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné 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 snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (73)
Hodnocení 3.5 z 5 · 1 hodnocení:
Tento komentář byl moderátorem webu minimalizován
Ahoj, hledám k odeslání dat z dat kontingenční tabulky, můžete mi prosím pomoci
Tento komentář byl moderátorem webu minimalizován
Je možné napsat skript tak, že když kliknete na tlačítko, připojí se k e-mailu jako výše, ale také odstraní tlačítko? takže na kopii souboru, který se posílá e-mailem, už není tlačítko?
Tento komentář byl moderátorem webu minimalizován
Těsně pod ".Body = xMailBody" přidejte následující
.Attachments.Add ActiveWorkbook.FullName
Tento komentář byl moderátorem webu minimalizován
Ahoj Dani.

Přidal jsem část, jak jste řekl, ale e-mail s přiloženým sešitem má stále tlačítka.
Tento komentář byl moderátorem webu minimalizován
ahoj jde to nastavit tak abych nemusel mačkat odeslat - automaticky odešle email????
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Nahraďte prosím řádek .Display za .Send in výše kód VBA.
Tento komentář byl moderátorem webu minimalizován
vygeneruje pouze jeden e-mail a bude neustále přepisovat obsah namísto otevírání konceptů více e-mailů.
Tento komentář byl moderátorem webu minimalizován
Ahoj všem, předně velké díky, tento příspěvek je velmi užitečný a funguje jako příloha. Funguje to pro mě, ale v listu se neukládají žádné aktualizace, musíte stisknout tlačítko Uložit. Chtěl bych, aby příloha měla vše, co je aktuálně v excelovém listu.

Mohu toho dosáhnout pomocí vestavěné funkce E-mail v Excelu, ale chtěl jsem tlačítko, protože potřebuji napevno zadat konkrétní e-mailovou adresu.

Takže shrnuto bych rád věděl:

Zajímalo by mě, zda existuje způsob: poté, co uživatel otevře excelový sešit a provede úpravy, zda tlačítko uchová přílohu s aktualizacemi?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Kód byl optimalizován. Zkuste to prosím a děkujeme za váš komentář.

Private Sub CommandButton1_Click ()
'Aktualizováno Extendoffice 2017 / 9 / 14
Dim xOutApp jako objekt
Dim xOutMail jako objekt
Dim xMailBody jako řetězec
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Nastavit xOutMail = xOutApp.CreateItem(0)
ActiveWorkbook.Save
xMailBody = "Obsah těla" & vbNewLine & vbNewLine & _
"Toto je řádek 1" & vbNewLine & _
"Toto je řádek 2"
On Error Resume Next
S xOutMail
.To = "E-mailová adresa"
.CC = ""
.BCC = ""
.Subject = "Otestovat odeslání e-mailu kliknutím na tlačítko"
.Tělo = xMailBody
.Attachments.Add ActiveWorkbook.FullName
.Zobrazte 'nebo použijte .Send
Konec s
Při chybě GoTo 0
Nastavte xOutMail = nic
Nastavte xOutApp = Nic
End Sub
Tento komentář byl moderátorem webu minimalizován
Jak mohu připojit aktivní sešit k e-mailu, když stisknu tlačítko?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Těsně pod ".Body = xMailBody" přidejte následující
.Attachments.Add ActiveWorkbook.FullName
Tento komentář byl moderátorem webu minimalizován
Teria como em vez de enviar a planilha, enviar as informationções em imagem?
Tento komentář byl moderátorem webu minimalizován
mohu pomocí tohoto kódu VBA odkazovat na informace o buňce v těle e-mailu? Jak bych například odkazoval na hodnoty buněk na níže uvedený kód?

xMailBody = "Obsah těla" & vbNewLine & vbNewLine & _
"Toto je řádek 1" & vbNewLine & _
"Toto je řádek 2"

Také pomocí kódu (.TO = "e-mailová adresa"). jak mohu nechat "e-mailovou adresu" vytáhnout e-mailovou adresu z buňky ve sloupci vedle ní.


Díky,
Tento komentář byl moderátorem webu minimalizován
Je možné přidat druhé tlačítko e-mailu do stejného listu? Když se o to pokouším, připojuje se ke kódu z původního tlačítka e-mailu. dík.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Každému tlačítku musíte přiřadit různé kódy.
Tento komentář byl moderátorem webu minimalizován
mohu pomocí tohoto kódu VBA odkazovat na informace o buňce v těle e-mailu? Jak bych například odkazoval na hodnoty buněk na níže uvedený kód?

xMailBody = "Obsah těla" & vbNewLine & vbNewLine & _
"Toto je řádek 1" & vbNewLine & _
"Toto je řádek 2"

Díky,
Tento komentář byl moderátorem webu minimalizován
Hi Glenn,
Použijte prosím následující kód. Děkuji za váš komentář.
xMailBody = [B5]
Tento komentář byl moderátorem webu minimalizován
Je možné místo odeslání přílohy v e-mailu odeslat hypertextový odkaz na soubor (umístěný na SharePointu)?
Tento komentář byl moderátorem webu minimalizován
Ahoj Laurie,
S tím ti nepomůžu. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Mohu odkazovat na hodnotu v buňce v předmětu pomocí řetězce? Nějaká variace níže uvedeného?

.Subject = "Nová událost:" & Target.Address = "38 $ B$"
Tento komentář byl moderátorem webu minimalizován
ahoj abi,
Změňte prosím kód na .Subject = "Nová událost:" & [B38].
Děkujeme za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Ahoj,
Může mi někdo pomoci s následujícím požadavkem?
Mám excelový list se dvěma rozevíracími seznamy.

1 rozevírací seznam – seznam oddělení

2 rozevírací seznam – kategorie

Chci, když vyberu oddělení a kategorii ze seznamů; (například když vyberu „prodej“ v oddělení a „měsíční zpráva“ v kategorii)

Potřebuji poslat e-mailem verzi PDF tohoto pracovního listu prodejnímu týmu s předmětem e-mailu je měsíční zpráva.

Pokud ze seznamu oddělení vyberu "výrobu", e-mail by měl jít skupině lidí ve výrobě.

Oceňuji, pokud mi v tom můžete pomoci

Rasike
Tento komentář byl moderátorem webu minimalizován
Ahoj Rasike,
S tím vám bohužel nepomůžu. Vítejte, pokud chcete na našem fóru zveřejnit jakýkoli dotaz: https://www.extendoffice.com/forum.html získat další podporu Excelu od profesionála Excelu nebo jiných fanoušků Excelu.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Jak získám poštu, aby automaticky přidala můj podpis z aplikace Outlook?
Tento komentář byl moderátorem webu minimalizován
Ahoj Johne,
Níže uvedený kód VBA vám může pomoci vyřešit problém. Děkuji za Váš komentář.

Private Sub CommandButton1_Click ()
'Aktualizováno Extendoffice 2019 / 6 / 26
Dim xOutApp jako objekt
Dim xOutMail jako objekt
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Nastavit xOutMail = xOutApp.CreateItem(0)
S xOutMail
.Zobrazte 'nebo použijte .Send
.To = "E-mailová adresa"
.CC = ""
.BCC = ""
.Subject = "Otestovat odeslání e-mailu kliknutím na tlačítko"
.HTMLBody = "Toto je zkušební odeslání e-mailu v Excelu" & "
" & .HTMLBody
'.Poslat
Konec s
Při chybě GoTo 0
Nastavte xOutMail = nic
Nastavte xOutApp = Nic
End Sub
Tento komentář byl moderátorem webu minimalizován
Musíte být uživatel Excelu, když stisknete tlačítko pro odeslání e-mailu? nebo pouze osoba, která obdrží e-mail, musí být uživatelem aplikace Outlook?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Vzhledem k tomu, že e-mail je třeba odeslat prostřednictvím aplikace Outlook po kliknutí na tlačítko v aplikaci Excel, musíte mít aplikaci Outlook nainstalovanou v počítači, aby fungovala.
Tento komentář byl moderátorem webu minimalizován
Chci poslat excelový list e-mailem, ale neodešle to. Jak napíšete kód pro odeslání dokumentu e-mailem
Tento komentář byl moderátorem webu minimalizován
ahoj marcusi,
Níže uvedený kód VBA vám může pomoci vyřešit problém.

Dílčí SendWorkSheet()
'Aktualizace 20190626
Dim xFile As String
Dim xFormat As Long
Dim Wb jako sešit
Dim Wb2 jako sešit
Dim FilePath jako řetězec
Dim název_souboru jako řetězec
Ztlumit aplikaci OutlookApp jako objekt
Ztlumit OutlookMail jako objekt
On Error Resume Next
Application.ScreenUpdating = False
Nastavte Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Nastavte Wb2 = Application.ActiveWorkbook
Vyberte Case Wb.FileFormat
Pouzdro xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
Pokud Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Jiný
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Případ Excel8:
xFile = ".xls"
xFormat = Excel8
Případ xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Konec Vybrat
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Nyní, "dd-mmm-yy h-mm-ss")
Nastavit OutlookApp = CreateObject("Outlook.Application")
Nastavit OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
S OutlookMailem
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte funkce"
.Body = "Zkontrolujte a přečtěte si tento dokument."
.Přílohy.Přidat Wb2.FullName
.Zobrazit
'.Poslat
Konec s
Wb2.Zavřít
Zabijte FilePath & FileName & xFile
Nastavit OutlookMail = nic
Nastavit OutlookApp = nic
Application.ScreenUpdating = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Jak mohu připojit aktivní pracovní list k e-mailu, když stisknu tlačítko?
Tento komentář byl moderátorem webu minimalizován
ahoj Grante,
Klikněte prosím pravým tlačítkem na tlačítko a vyberte Zobrazit kód, poté zkopírujte níže uvedený kód mezi řádky Private Sub a End Sub. Doufám, že pomůžu. Děkuji za Váš komentář.

Dim xFile As String
Dim xFormat As Long
Dim Wb jako sešit
Dim Wb2 jako sešit
Dim FilePath jako řetězec
Dim název_souboru jako řetězec
Ztlumit aplikaci OutlookApp jako objekt
Ztlumit OutlookMail jako objekt
On Error Resume Next
Application.ScreenUpdating = False
Nastavte Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Nastavte Wb2 = Application.ActiveWorkbook
Vyberte Case Wb.FileFormat
Pouzdro xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
Pokud Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Jiný
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Případ Excel8:
xFile = ".xls"
xFormat = Excel8
Případ xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Konec Vybrat
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Nyní, "dd-mmm-yy h-mm-ss")
Nastavit OutlookApp = CreateObject("Outlook.Application")
Nastavit OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
S OutlookMailem
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte funkce"
.Body = "Zkontrolujte a přečtěte si tento dokument."
.Přílohy.Přidat Wb2.FullName
.Zobrazit
'.Poslat
Konec s
Wb2.Zavřít
Zabijte FilePath & FileName & xFile
Nastavit OutlookMail = nic
Nastavit OutlookApp = nic
Application.ScreenUpdating = True
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Existuje způsob, jak změnit název souboru na aktuální datum, když se připojí k e-mailu?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Pracoval jsem na listu, ale nemohu ho dokončit. Doufám, že mi můžete pomoci :)

Samotný soubor musí být xltm (šablona) a list musí být připojen k e-mailu.

A automatický podpis, pak bych byl velmi šťastný.

Předem děkuji /Dr. Nang
Tento komentář byl moderátorem webu minimalizován
Ahoj, používám tabulku s 80 jednotlivými účty barů a na této stránce jsem s velkým úspěchem použil kód VBA. Do těla e-mailu bych však chtěl při odesílání zkopírovat a vložit konkrétní rozsah buněk účtu, aby klient mohl mít historii. Můžete pomoci s kódem VBA pro toto?
Tento komentář byl moderátorem webu minimalizován
Ahoj! Moc vám za to děkuji. Byla to fantastická pomoc.

Je možné odeslat aktivní pracovní list stisknutím tlačítka namísto celého sešitu?

Díky!
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL