ไปยังเนื้อหาหลัก

วิธีส่งแผ่นงานผ่าน Outlook จาก Excel เท่านั้น

ถ้าคุณต้องการส่งอีเมลแผ่นงานเดียวจากสมุดงานใน Excel ผ่าน Outlook คุณสามารถส่งแผ่นงานเป็นไฟล์แนบเป็นเนื้อหาเนื้อหาหรือเป็นไฟล์ PDF แต่มีวิธีที่เร็วกว่าสำหรับคุณในการจัดการกับปัญหานี้ใน Excel หรือไม่?

ส่งแผ่นงานเดียวเป็นเนื้อหาจาก Excel ด้วยคำสั่ง Send to Mail Recipient

ส่งแผ่นงานเดียวเป็นไฟล์แนบจาก Excel พร้อมรหัส VBA

ส่งแผ่นงานเดียวเป็นไฟล์ PDF จาก Excel พร้อมรหัส VBA


ลูกศรสีฟ้าฟองขวา ส่งแผ่นงานเดียวเป็นเนื้อหาจาก Excel ด้วยคำสั่ง Send to Mail Recipient

Excel สนับสนุนให้เราส่งอีเมลถึงแผ่นงานที่ใช้งานเป็นเนื้อหาเนื้อหาโดยใช้คำสั่ง Send to Mail Recipient คุณสามารถทำได้ดังนี้:

ถ้าคุณใช้ Excel 2007, 2010 หรือ 2013 คุณต้องเพิ่มสิ่งนี้ ส่งไปยังผู้รับจดหมาย คำสั่งไปที่ แถบเครื่องมือด่วน ก่อน

1. คลิกไอคอนของไฟล์ ปรับแต่งแถบเครื่องมือด่วนและเลือก คำสั่งเพิ่มเติมดูภาพหน้าจอ:

เอกสารอีเมล sheet1

2. และใน ตัวเลือก Excel ให้เลือก คำสั่งไม่อยู่ใน Ribbon ใน เลือกคำสั่งจาก รายการแบบหล่นลงจากนั้นเลือก ส่งไปยังผู้รับจดหมาย แล้วคลิก เพิ่ม >> เพื่อเพิ่มคำสั่งนี้ในคลิกสุดท้าย OK เพื่อบันทึกการตั้งค่านี้ ดูภาพหน้าจอ:

เอกสารอีเมล sheet2

3. พื้นที่ ส่งไปยังผู้รับจดหมาย แทรกคำสั่งลงในไฟล์ แถบเครื่องมือด่วนดูภาพหน้าจอ:

เอกสารอีเมล sheet3

4. จากนั้นคลิกที่นี่ ส่งไปยังผู้รับจดหมาย ปุ่มไอคอนและกล่องพร้อมต์จะปรากฏขึ้นในไฟล์ E-mail กล่องข้อความให้เลือก ส่งแผ่นงานปัจจุบันเป็นเนื้อหาข้อความและคลิก OK. ดูภาพหน้าจอ:

เอกสารอีเมล sheet4

5. และกล่องแก้ไขอีเมลจะแสดงเหนือข้อมูลในแผ่นงานคุณสามารถป้อนผู้รับหัวเรื่องและบทนำลงในกล่องข้อความที่เกี่ยวข้องได้ ดูภาพหน้าจอ:

เอกสารอีเมล sheet5

6. จากนั้นคลิก ส่งชีนี้t เพื่อส่งแผ่นงานที่ใช้งานอยู่นี้เป็นเนื้อหาข้อความถึงบุคคลของคุณ


ลูกศรสีฟ้าฟองขวา ส่งแผ่นงานเดียวเป็นไฟล์แนบจาก Excel พร้อมรหัส VBA

หากคุณต้องการส่งอีเมลถึงแผ่นงานที่ใช้งานอยู่เป็นไฟล์แนบรหัส VBA ต่อไปนี้สามารถช่วยคุณได้

1. เปิดใช้งานแผ่นงานของคุณที่คุณต้องการส่ง

2. กด ALT + F11 และจะเปิดไฟล์ หน้าต่าง Microsoft Visual Basic for Applications.

3. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: ส่งแผ่นงานปัจจุบันเป็นไฟล์แนบจาก 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

หมายเหตุ: ในโค้ดด้านบนคุณสามารถเปลี่ยนข้อมูลต่อไปนี้ตามความต้องการของคุณเอง

  • .ถึง = ""
  • .CC = ""
  • .BCC = ""
  • .ubject = "คุณลักษณะ kte"
  • .Body = "โปรดตรวจสอบและอ่านเอกสารนี้"

4. จากนั้นคลิก F5 เพื่อเรียกใช้รหัสนี้และกล่องพร้อมต์จะปรากฏขึ้นให้คลิก อนุญาต เมื่อแถบความคืบหน้าเสร็จสิ้นจากนั้นแผ่นงานปัจจุบันจะถูกส่งไปยังผู้รับของคุณเป็นไฟล์แนบ

เอกสารอีเมล sheet6


ลูกศรสีฟ้าฟองขวา ส่งแผ่นงานเดียวเป็นไฟล์ PDF จาก Excel พร้อมรหัส VBA

บางครั้งคุณต้องส่งรายงานเวิร์กชีตของคุณให้กับผู้อื่น แต่ไม่ต้องการให้ผู้อื่นแก้ไข ในกรณีนี้คุณสามารถส่งแผ่นงานเป็นไฟล์ PDF จาก Excel ได้

1. เปิดใช้งานแผ่นงานของคุณที่คุณต้องการส่ง

2. กด ALT + F11 และจะเปิดไฟล์ หน้าต่าง Microsoft Visual Basic for Applications.

3. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: ส่งแผ่นงานปัจจุบันเป็นไฟล์ PDF จาก 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

หมายเหตุ: ในโค้ดด้านบนคุณสามารถเปลี่ยนข้อมูลต่อไปนี้ได้ตามต้องการ

  • .ถึง = ""
  • .CC = ""
  • .BCC = ""
  • .ubject = "คุณลักษณะ kte"
  • .Body = "โปรดตรวจสอบและอ่านเอกสารนี้"

4. จากนั้นกด F5 และกล่องพร้อมต์จะปรากฏขึ้นให้คลิก อนุญาต หลังจากสิ้นสุดแถบความคืบหน้าแล้วแผ่นงานที่ใช้งานอยู่จะถูกส่งไปยังบุคคลที่ระบุเป็นไฟล์ PDF

เอกสารอีเมล sheet6

หมายเหตุ:

1. วิธีการเหล่านี้ใช้ได้เฉพาะเมื่อคุณใช้ Outlook เป็นโปรแกรมเมลของคุณ

2. หลังจากส่งแผ่นงานปัจจุบันคุณสามารถไปที่ Outlook ของคุณเพื่อให้แน่ใจว่าส่งอีเมลเรียบร้อยแล้ว


สร้างรายชื่อผู้รับจดหมายจากนั้นส่งอีเมล

พื้นที่ Kutools สำหรับ Excel's สร้างรายชื่อผู้รับจดหมาย และ  ส่ง อีเมล โปรแกรมอรรถประโยชน์สามารถสร้างรายชื่อส่งเมลในแผ่นงานได้อย่างรวดเร็วจากนั้นส่งเรื่องเดียวกันเนื้อหาเดียวกันและไฟล์แนบเดียวกันไปยังที่อยู่อีเมลหลายแห่ง
รายชื่อผู้รับจดหมาย doc 1
doc ลูกศรลง
รายชื่อผู้รับจดหมาย doc 2

บทความที่เกี่ยวข้อง:

วิธีส่งสมุดงานปัจจุบันผ่าน Outlook จาก Excel

วิธีการส่ง / อีเมลช่วงเซลล์ผ่าน Outlook จาก Excel

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (34)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I've found the code you post for Typhaine and it works very well for me.
So thank's very much.
Philip.
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?
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