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

Jak odeslat e-mail prostřednictvím aplikace Outlook, když je sešit uložen v aplikaci Excel?

Tento článek hovoří o odesílání e-mailů prostřednictvím Outlooku při uložení konkrétního sešitu v aplikaci Excel. Udělejte to, jak ukazuje výukový program.

Po uložení sešitu s kódem VBA odešlete e-mail prostřednictvím aplikace Outlook


Po uložení sešitu s kódem VBA odešlete e-mail prostřednictvím aplikace Outlook

Chcete-li odeslat e-mail prostřednictvím aplikace Outlook, když je sešit uložen v aplikaci Excel, postupujte takto.

1. Nejprve prosím sešit uložte jako sešit Excel podporující makra. Klepněte na Soubor > Uložit jako. V Uložit jako v dialogovém okně vyberte složku pro uložení sešitu, pojmenujte ji do pole Název souboru a vyberte Sešit se zvýšeným makra Excel z Uložit jako typ rozevírací seznam a poté klikněte na ikonu Uložit knoflík. Viz screenshot:

2. Otevřete sešit Excel podporující makra, který jste právě uložili, stiskněte Další + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. V Microsoft Visual Basic pro aplikace v okně, poklepejte prosím Tato pracovní kniha na levé liště, poté zkopírujte a vložte níže uvedený kód VBA do Tato pracovní kniha okno s kódem. Viz screenshot:

Kód VBA: Odeslat e-mail při uložení sešitu

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Poznámka: Vyměňte prosím Emailová adresa s e-mailovou adresou příjemce v řádku .To = "E-mailová adresa", a změňte pole Cc, Subject a Body v kódu VBA podle potřeby.

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

Od této chvíle, když aktualizujete sešit a uložíte jej, automaticky se vytvoří e-mail s připojeným aktualizovaným sešitem. Klikněte prosím na Poslat tlačítko pro odeslání e-mailu. Viz screenshot:

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


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 (17)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Jak automatizovat e-mailové upozornění ve VBA na základě časového období, aniž byste museli vidět vyskakovací okno pro bezpečnostní povolení, aby VBA mohl odeslat e-mail.
Tento komentář byl moderátorem webu minimalizován
Gracias. Konzultace: utilizando esta misma rutina, como podría enviar el correo a un correo specificky dependiendo el valor de otra celda?
Tento komentář byl moderátorem webu minimalizován
Vážení, chtěl bych se zeptat, jak připojit funkční odkaz na určitou složku na serveru, pokud odkaz vložím, zobrazí se v sešitu jako prostý text a tak to v přijatém e-mailu nefunguje, jak mohu udělat z něj odkaz, aby na něj příjemci mohli kliknout?
Chtěl bych použít tento způsob místo odeslání přiloženého excelového souboru.
Díky za radu
Tento komentář byl moderátorem webu minimalizován
Ahoj Robert,
Je nám líto, s tím vám nemohu pomoci, vítáme vás, když můžete na našem fóru zveřejnit jakýkoli dotaz ohledně Excelu: https://www.extendoffice.com/forum.html. Získáte další podporu Excelu od našich profesionálních nebo jiných fanoušků Excelu.
Tento komentář byl moderátorem webu minimalizován
Dal jsem to do těla e-mailu a fungovalo to pro mě...
"file:///Z:\dir1\dir2\dir3\Test1.xlsm"
Tento komentář byl moderátorem webu minimalizován
Ahoj, pěkný článek! Jedna věc, kterou jsem se tímto snažil dosáhnout, je připojit aktuální stav sešitu k e-mailu.

V tuto chvíli odesílá pouze původní stav souboru a neobsahuje žádné změny, které by uživatel provedl.

Máte nějaké nápady, jak to implementovat pomocí makra?
Tento komentář byl moderátorem webu minimalizován
Ahoj Chris,
Kód byl aktualizován s vyřešením problému, zkuste to prosím. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Ahoj Chris,

Narazil jsem na stejný problém.
V současné době se kódy používají v modulu „před uložením“.
Což znamená, že e-mail odešle tabulku, která byla předtím uložena.

Existuje další modul "aftersave".
Použil jsem kód v tomto modulu a fungovalo to jako kouzlo.
Tento komentář byl moderátorem webu minimalizován
Jak by se to řešilo u dokumentu Office 365. Ukládá se automaticky.
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak nechat automatický e-mail automaticky zašifrovat?
Tento komentář byl moderátorem webu minimalizován
Ahoj Miku,
Tento problém bohužel nepomůže vyřešit. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Ahoj! Díky moc za tento návod :-) Chtěl bych v tomto kódu udělat něco víc - poslat e-mail podle zemí. To znamená, že musím vytvářet příkazy pomocí if a select. Že jo? Přílohu z e-mailu jsem již smazal. Místo toho bych chtěl přidat odkaz s cestou do složky. Ale když se makro spustí, příkaz není platný :-(
Vážím si každé nápovědy, jak to tam přidat.
Tento komentář byl moderátorem webu minimalizován
Dobrý den – Jak mohu zahrnout data buněk do pole „cc“ e-mailu?
Tento komentář byl moderátorem webu minimalizován
Ahoj Brent,
Předpokládejme, že chcete zahrnout hodnotu v buňce a7 do pole e-mailu „cc“, zkuste níže uvedený VBA.

Private Sub Workbook_AfterSave (ByVal Success As Boolean)

'Aktualizováno Extendoffice 20200628

Dim xOutApp jako objekt

Dim xMailItem jako objekt

Dim xName As String

On Error Resume Next

Set xOutApp = CreateObject("Outlook.Application")

Nastavit xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

S xMailItem

.To = "E-mailová adresa"

.CC = Rozsah("a7").Hodnota


.Subject = "Sešit byl uložen"

.Body = "Ahoj," & Chr(13) & Chr(13) & "Soubor je nyní aktualizován."

.Přílohy.Přidat xName

.Zobrazit

'.poslat

Konec s

Nastavit xMailItem = nic

Nastavte xOutApp = Nic

End Sub
Tento komentář byl moderátorem webu minimalizován
Vážení, může mi někdo pomoci, jsem začátečník v kódování VBA, provedl jsem určité úpravy, ale jak to mohu udělat, poslat e-mail, pokud je sešit uložen a pokud je uživatelské jméno jiné, například uživatelské jméno stanice je glade2 a pokud je sešit uložen, pošlete e-mail, jinak neposílejte.

Moc děkuji za vaši podporu
Tento komentář byl moderátorem webu minimalizován
ahoj florine,
Nerozuměl jsem tomu. Co představuje vaše uživatelské jméno?
Tento komentář byl moderátorem webu minimalizován
Ahoj krystale, děkuji za odpověď, usernane je enviroment usernane a udělal jsem to, použil jsem funkci if a exit sub.
Děkuji mnohokrát.
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í

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