Cách gửi Email trực tiếp trên file Excel (có thể đính kèm file)

Trong thời đại công nghệ 4.0 như hiện nay, chúng ta cần gì khi sử dụng các ứng dụng văn phòng? Vâng!  đó chính là sự linh hoạt, nhanh chóng và chính xác !

Trong bài hướng dẫn về Excel ngày hôm nay, mình sẽ chia sẻ với các bạn thủ thuật gửi Email đính kèm, hay một đoạn nội dung bảng tính…  ngay trên ứng dụng Excel, mà không cần phải mở Gmail hoặc Outlook để thực hiện việc sao chép, hay upload tệp.

Hỗ trợ các bạn trao đổi công việc qua mail nhanh chóng ngay trên Excel. Nghe có vẻ khá thú vị phải không nào 😀 Okay, vậy thì vào việc luôn thôi…

Đọc thêm:

#1. Cách gửi Email trực tiếp trên Excel

+ Bước 1: Đầu tiên bạn mở file Excel của bạn lên.

Tại đây bạn bôi đen, tạo vùng chọn cho bảng tính => Sau đó mở tab Developer => rồi chọn Visual Basic. Hoặc bạn có thể sử dụng nhanh tổ hợp phím Alt + F11 để mở trình VBA.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (1)

+ Bước 2: Hộp thoại Micoroft Visual Basic for Applications hiện lên => tại đây bạn mở tab menu Insert => và chọn Module.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (2)

+ Bước 3: Rồi bạn Copy đoạn mã Code sau:

Sub SendRange()
‘Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = “KutoolsforExcel”
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox(“Range”, xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.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 = “”
.Body = “”
.Attachments.Add Wb2.FullName
.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

+ Bước 4: Sau đó Paste vào hộp thoại Module1 (Code) => và thực hiện chỉnh sửa các thông số:

+ To = “Email người nhận”
+ CC = “Email (nếu có)”
+ BCC = “Email (nếu có)”
+ Subject = “Chủ đề Email”
+ Body = “Nội dung Email”

=> Và nhấn Run để chạy code.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (3)

+ Bước 5: Sau đó nhấn OK để xác nhận vùng nội dung đính kèm tại hộp thoại KutoolsforExcel.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (4)

=> Và nhấn Allow tại hộp thoại Microsoft Outlook để cho phép.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (5)

Lưu ý: Để thực hiện thành công mã Code này bạn cần cấu hình Outlook trước nhé.

Note: Nếu bạn chưa cấu hình tài khoản Gmail vào Outlook thì có thể tham khảo bài viết Hướng dẫn cấu hình, quản lý Gmail trên Microsoft Outlook chuẩn nhất.

+ Bước 6: Và đây là kết quả sau khi mình thực hiện Test thử:

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (6)

#2. Cách gửi một đoạn bảng tính qua Email ngay trên Excel

Trong một bài viết gần đây mình đã hướng dẫn các bạn cách gửi bảng tính trên Gmail vẫn giữ được định dạng gốc rồi.

Và với cách sử dụng VBA này, các bạn sẽ không cần mở Gmail để thực hiện như trước nữa nhé.

Thực hiện:

+ Bước 1: Để làm được điều đó trước tiên bạn cần tạo/ bôi đen vùng chọn bảng tính Excel cần gửi => sau đó mở tab Deverlop => và chọn Visual Basic. Hoặc nhấn Alt + F11 cho nhanh.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (7)

+ Bước 2: Sau đó chọn Insert => chọn Module như hình bên dưới.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (8)

+ Bước 3: Và copy đoạn Code sau:

Sub EmailRange()
‘Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = “KutoolsforExcel”
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox(“Range”, xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = “Please read this email.”
.Item.To = “skyyang@extendoffice.com”
.Item.Subject = “information of kte”
.Item.Send
End With
Application.ScreenUpdating = True
End Sub

=> Rồi Paste vào hộp thoại Module1 (Code) => sau đó chỉnh sửa các thông số:

+ Introduction = “Nội dung Email”
+ Item.To = “Email người nhận”
+ Item.Subject = “Chủ đề Email”

+ Bước 4: Và nhấn Run để chạy code.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (9)

+ Bước 5: Tiếp đó bạn click OK tại hộp thoại KutoolsforExcel để xác nhận phạm vi bảng tính.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (10)

+ Bước 6: Rồi nhấn Allow để Microsoft Outlook thực thi gửi Email theo chỉ định.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (11)

Cuối cùng ta được kết quả Email người nhận như hình dưới.

gui-mot-phan-bang-tinh-hoac-tep-dinh-kem-khong-can-mo-email (12)

#3. Lời Kết

Okay vậy là xong, mình vừa hướng dẫn rất chi tiết với các bạn cách sử dụng Code VBA trên Excel để gửi tệp đính kèm, hoặc gửi một phần nội dụng của bảng tính Excel qua Email mà không cần mở Gmail, hay Outlook rồi đấy.

Và đến đây thì bài hướng dẫn của mình cũng xin được tạm dừng. Hi vọng thủ thuật này sẽ hữu ích trong công việc của các bạn.

Chúc các bạn thành công !

CTV: Lương Trung – Blogchiasekienthuc.com

Bài viết đạt: 3.7/5 sao - (Có 3 lượt đánh giá)
Note: Bài viết này hữu ích với bạn chứ? Đừng quên đánh giá bài viết, like và chia sẻ cho bạn bè và người thân của bạn nhé !

Administrator: Kiên Nguyễn

Có một câu nói của người Nhật mà mình rất thích đó là " Người khác làm được thì mình cũng làm được ". Chính vì thế mà hãy theo đuổi đam mê, thành công sẽ theo đuổi bạn ! Nếu như bạn đang gặp khó khăn và cần sự trợ giúp thì hãy comment phía bên dưới mỗi bài viết để nhận được sự hỗ trợ từ cộng đồng Blog Chia Sẻ Kiến Thức nhé.

6 comments

  1. em làm cách 2 toàn bị báo lỗi a ạ

  2. bài của bạn sao giống cái mình cần xin cảm ơn trước để thử sao

  3. mình làm được rồi , cảm ơn bạn nhiều , có vấn đề là nhân viên nhiều mà chi tiết mỗi nhân viên và mail lại khác nhau nhưng form chi tiết chỉ có 1, vậy có thể thêm code để gởi mail theo Data validation List và như chọn Data validation List là Nguyễn A thì khi nhấn nút “gởi” thì chỉ gởi đúng mail của Nguyễn A, mong bạn vui lòng hướng dẫn

  4. Hướng dẫn rất hữu ích. Bạn ơi, mình có câu hỏi thêm là khi mình làm theo code thì mình phải nhấn nút 2 lần: 1 lần để kích hoạt VBA và 1 lần để bấm “OK” của “KutoolsforExcel”.
    Mình đã chỉnh code tí để VBA auto nhập vùng cần gửi mail vào “KutoolsforExcel” rồi.
    Có cách nào để mình cho code auto bấm OK cho mình luôn không?
    Mong bạn chia sẻ thêm.
    Cảm ơn bạn!
    ——————–
    Sub EmailRange()
    ‘Update 20131209
    Dim WorkRng As Range
    On Error Resume Next
    xTitleId = “KutoolsforExcel”
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox(“Range”, xTitleId, “F6:F17”, Type:=8)
    Application.ScreenUpdating = False
    WorkRng.Select
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
    .Item.To = “bca@jabil.com”
    .Item.Cc = “abc@gmail.com”
    .Item.Subject = “[Attention]Overdue Date”
    .Item.Send
    End With
    Application.ScreenUpdating = True
    End Sub

  5. Ad ơi tôi sửa lại code cho phù hợp thực tế với mình sao mỗi lần gửi màn hình đều nhấp nháy hiện outlook ra, xin hướng dẩn khắc phục hiện tượng ạ , cảm ơn nhiều

    Sub EmailRange()
    ‘Update 20131209
    Dim WorkRng As Range

    On Error Resume Next
    xTitleId = “KutoolsforExcel”

    YesNo = MsgBox(“Are U Sure ??”, vbQuestion + vbYesNo, xTitleId)
    Select Case YesNo
    Case vbYes

    Range(“B2:C33”).Select

    Set WorkRng = Application.InputBox(“Range”, xTitleId, WorkRng.Address, Type:=8)
    Application.ScreenUpdating = False
    WorkRng.Select
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
    Application.ScreenUpdating = False
    .Introduction = “No Any Thing”
    .Item.To = Range(“E3”)
    .Item.Subject = “Thong Tin Den ”
    .Item.Send
    End With
    Case vbNo
    End Select
    Application.ScreenUpdating = True

    End Sub

  6. không cho hiện cái thông báo “Allow” được không ạ?


Một vài lưu ý trước khi comment :

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Tất cả các comment của các bạn sẽ được giải đáp trong vòng 48h !
Không được sử dụng từ khóa trong ô 'Name', bạn hãy dùng tên thật hoặc Nickname của bạn !
Không dẫn link sang trang web/blog khác. Xem quy định comment tại đây. Thank All!

Leave a Reply

Your email address will not be published. Required fields are marked *

Shop