Přejít k hlavnímu obsahu

Jak odeslat list pouze prostřednictvím aplikace Outlook z aplikace Excel?

Pokud chcete poslat e-mailem jeden list ze sešitu v aplikaci Excel prostřednictvím aplikace Outlook, můžete list odeslat jako přílohu, jako hlavní obsah nebo jako soubor PDF. Existují však nějaké rychlejší způsoby, jak se s tímto problémem vypořádat v aplikaci Excel?

Odeslat jeden list jako tělo z aplikace Excel pomocí příkazu Odeslat příjemci pošty

Jeden list odešlete jako přílohu z Excelu s kódem VBA

Posílejte jeden list jako soubor PDF z aplikace Excel s kódem VBA


šipka modrá pravá bublina Odeslat jeden list jako tělo z aplikace Excel pomocí příkazu Odeslat příjemci pošty

Excel nás podporuje při zasílání aktivního listu jako obsahu těla pomocí příkazu Odeslat příjemci pošty. Můžete postupovat následovně:

Pokud používáte Excel 2007, 2010 nebo 2013, musíte toto přidat Odeslat příjemci pošty příkaz do příkazového řádku Panel nástrojů Rychlý přístup jako první.

1. Klikněte na ikonu Přizpůsobte panel nástrojů Rychlý přístup, a vyberte Další příkazy, viz screenshot:

dokument-e-mail-list1

2. A v Možnosti aplikace Excel dialogové okno vyberte Příkazy nejsou na pásu karet v Vyberte Příkazy z rozevírací seznam a poté vyberte Odeslat příjemci pošty a klepněte na tlačítko Přidat >> tlačítko pro přidání tohoto příkazu, na poslední kliknutí OK pro uložení tohoto nastavení. Viz snímek obrazovky:

dokument-e-mail-list2

3. Projekt Odeslat příjemci pošty příkaz byl vložen do Panel nástrojů Rychlý přístup, viz screenshot:

dokument-e-mail-list3

4. Poté klikněte na toto Odeslat příjemci pošty ikona a v okně se objeví okno s výzvou E-mail zaškrtněte políčko Odeslat aktuální list jako tělo zprávy, a klepněte na tlačítko OK. Viz snímek obrazovky:

dokument-e-mail-list4

5. A nad daty listu se zobrazí editační pole e-mailu, do příslušného textového pole můžete zadat své příjemce, předmět a úvod. Viz snímek obrazovky:

dokument-e-mail-list5

6. Pak klikněte na tlačítko Pošlete tuto Sheet odeslat tento aktivní list jako tělo zprávy vaší konkrétní osobě.


šipka modrá pravá bublina Jeden list odešlete jako přílohu z Excelu s kódem VBA

Pokud byste chtěli poslat aktivní list jako přílohu e-mailem, může vám to poskytnout následující kód VBA.

1. Aktivujte list, který chcete odeslat.

2. Podržte ALT + F11 klíče a otevře se Okno Microsoft Visual Basic pro aplikace.

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

Kód VBA: odeslání aktuálního listu jako přílohy z aplikace Excel

Sub SendWorkSheet()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = ""
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

Poznámka: Ve výše uvedeném kódu můžete podle svých potřeb změnit následující informace.

  • .To = ""
  • .CC = ""
  • .BCC = ""
  • .Subject = "kte funkce"
  • .Body = "Zkontrolujte a přečtěte si tento dokument."

4. Pak klikněte na tlačítko F5 klíč ke spuštění tohoto kódu a vyskočí okno s výzvou, klepněte na povolit když je indikátor průběhu dokončen, a aktuální list byl odeslán příjemci jako příloha.

dokument-e-mail-list6


šipka modrá pravá bublina Posílejte jeden list jako soubor PDF z aplikace Excel s kódem VBA

Někdy je třeba poslat zprávu o listu ostatním, ale nechcete, aby ji ostatní upravovali. V takovém případě můžete list odeslat jako soubor PDF z aplikace Excel.

1. Aktivujte list, který chcete odeslat.

2. Podržte ALT + F11 klíče a otevře se Okno Microsoft Visual Basic pro aplikace.

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

Kód VBA: odeslání aktuálního listu jako souboru PDF z aplikace Excel

Sub SendWorkSheetToPDF()
'Update 20131209
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = ""
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add FileName
    .Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

Poznámka: Ve výše uvedeném kódu můžete podle potřeby změnit následující informace.

  • .To = ""
  • .CC = ""
  • .BCC = ""
  • .Subject = "kte funkce"
  • .Body = "Zkontrolujte a přečtěte si tento dokument."

4. Pak stiskněte tlačítko F5 a zobrazí se okno s výzvou, klepněte na povolit po dokončení lišty postupu byl aktivní list odeslán konkrétní osobě jako soubor PDF.

dokument-e-mail-list6

Poznámky:

1. Tyto metody jsou k dispozici, pouze pokud používáte Outlook jako poštovní program.

2. Po odeslání aktuálního listu můžete přejít do aplikace Outlook a ověřit, zda byl e-mail úspěšně odeslán.


Vytvořte seznam adresátů a poté odešlete e-maily

Projekt Kutools pro Excel's Vytvořte seznam adresátů  a  Poslat E-maily nástroje mohou rychle vytvořit seznam adresátů v listu a poté odeslat stejný předmět, stejný obsah a stejné přílohy na více e-mailových adres.
seznam adresátů dokumentů 1
šipka dokumentu dolů
seznam adresátů dokumentů 2

Související články:

Jak odeslat aktuální sešit prostřednictvím aplikace Outlook z aplikace Excel?

Jak odeslat / poslat e-mailem rozsah buněk pomocí aplikace Outlook z aplikace Excel?

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

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!
Comments (33)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Bonjour,

Est-il possible d'utiliser le code pour joindre deux feuilles du fichier Excel dans le mail ?

Merci d'avance.
This comment was minimized by the moderator on the site
Hello, Typhaine
To send multiple sheets, please apply the below code:
Note: In the code, you should change the sheet names to your own.
Sub Mail_Sheets_Array()
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim OutApp As Object
    Dim OutMail As Object
    Dim sh As Worksheet
    Dim TheActiveWindow As Window
    Dim TempWindow As Window
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set Sourcewb = ActiveWorkbook
    With Sourcewb
        Set TheActiveWindow = ActiveWindow
        Set TempWindow = .NewWindow
        .Sheets(Array("Sheet1", "Sheet2")).Copy
    End With
    TempWindow.Close
    Set Destwb = ActiveWorkbook
    With Destwb
        If Val(Application.Version) < 12 Then
           
            FileExtStr = ".xls": FileFormatNum = -4143
        Else
            
            Select Case Sourcewb.FileFormat
            Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
            Case 52:
                If .HasVBProject Then
                    FileExtStr = ".xlsm": FileFormatNum = 52
                Else
                    FileExtStr = ".xlsx": FileFormatNum = 51
                End If
            Case 56: FileExtStr = ".xls": FileFormatNum = 56
            Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
            End Select
        End If
    End With
    TempFilePath = Environ$("temp") & "\"
    TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")

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

    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        On Error Resume Next
        With OutMail
            .To = ""
            .CC = ""
            .BCC = ""
            .Subject = "KTE features"
            .Body = "Please check and read this document"
            .Attachments.Add Destwb.FullName
           
            .Display
        End With
        On Error GoTo 0
        .Close savechanges:=False
    End With
   
    Kill TempFilePath & TempFileName & FileExtStr

    Set OutMail = Nothing
    Set OutApp = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub


Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hej,

Muszę wysłać zakres (stały) arkusza jako obraz w treści maila jednocześnie dodając cały arkusz jako plik/załącznik. Czy jest to możliwe?
This comment was minimized by the moderator on the site
Hi the program worked just fine till 2021, I tried to run it  today, but it does send the email. As does notshow any errors
This comment was minimized by the moderator on the site
This is to inform you that i have an VBA code for send email from outlook with the help of excel vba,now i want to put "MDD Code" & " MDD Name" as well as Cells(i, 1) & Cells(i, 2) in a table like that.

MDD Code MDD Name
M123 Joydip

I am sending you the VBA Code,Request you for help.
VBA Code
----------------------------------------------------------------------------------------------------------------------------------------------
Sub sendmail()

Dim olapp As Outlook.Application

Dim olmail As Outlook.MailItem

For i = 2 To 35

Application.ScreenUpdating = False

Set olapp = New Outlook.Application

Set olmail = olapp.CreateItem(olMailItem)

With olmail

olmail.To = Cells(i, 4).Value

olmail.CC = Cells(i, 6).Value

olmail.Subject = Cells(i, 7).Value

olmail.HTMLBody = "Dear Partner ," & _

"
Please find the attchment." & _

"

MDD Code : " & Cells(i, 1) & _

"
MDD Name : " & Cells(i, 2) & _

"






Joydip Bhattacharjee" & _

"
Company" & _

"
MIS" & _

"
Country" & _

"
Contact No : 7602066491"







olmail.Attachments.Add Cells(i, 8).Value

'On Error Resume Next

'olmail.Attachments.Add Cells(i, 9).Value

'On Error Resume Next

'olmail.Attachments.Add Cells(i, 10).Value

'On Error Resume Next

'olmail.Attachments.Add Cells(i, 11).Value

'On Error Resume Next

'olmail.Attachments.Add Cells(i, 12).Value

'On Error Resume Next

'olmail.Attachments.Add Cells(i, 13).Value

'On Error Resume Next

'olmail.Attachments.Add Cells(i, 14).Value

'On Error Resume Next

olmail.Send

End With

Set olmail = Nothing

Next

End Sub
This comment was minimized by the moderator on the site
merhaba ben bunu belirli periyotta otomatik mail atmasını nasıl ayarlayabilirim
This comment was minimized by the moderator on the site
Excelent code. Thanks!
This comment was minimized by the moderator on the site
Anyway I can easily send an excel worksheet through my outlook without all this ?? I can send the worksheet context, but no the workbook as an attachment. On my work computer I can send from word and excel, but am having trouble at home.
This comment was minimized by the moderator on the site
Hi! Is it possible to use this code, but instead of sending straight away it opens up the mail?
This comment was minimized by the moderator on the site
You can try this code:
Sub SendWorkSheet()
'Update 20180109
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
' .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

Please let me know if it works for you, thank you.
This comment was minimized by the moderator on the site
This code works good, however, does anyone know a way to automate a field as an alert for the email to go automatically based on a date column?
This comment was minimized by the moderator on the site
Kindly help me out urgently. This the first time I am using the send current worksheet as PDF but the below code did not work at all and the dialogue to allow did not show up when I presses ctrl+G. I also want to know what to change to reference a cell that contained the email address instead of "to a specific email address. Sub SendWorkSheetToPDF() 'Update 20131209 Dim Wb As Workbook Dim FileName As String Dim OutlookApp As Object Dim OutlookMail As Object On Error Resume Next Set Wb = Application.ActiveWorkbook FileName = Wb.FullName xIndex = VBA.InStrRev(FileName, ".") If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1) FileName = FileName & "_" + ActiveSheet.Name & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = "" .CC = "" .BCC = "" .Subject = "kte features" .Body = "Please check and read this document." .Attachments.Add FileName .Send End With Kill FileName Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations