Cách gửi email từ bảng tính Excel bằng Script VBA

Trong bài viết dưới đây Taimienphi.vn sẽ hướng dẫn bạn cách gửi gửi email từ bảng tính Excel bằng Script VBA. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết đã có trên Taimienphi.vn để tìm hiểu cách di chuyển qua lại giữa các bảng tính, Worksheet trong Excel như thế nào nhé.

 

Gửi email từ bảng tính Excel

Có nhiều lý do mà người dùng muốn gửi email ngay bên trong bảng tính Excel. Giả sử nếu muốn nhận được thông báo từ nhân viên, người chịu trách nhiệm cập nhật tài liệu hoặc bảng tính hàng tuần, hoặc giả sử nếu muốn gửi bảng tính đến nhiều liên hệ với cùng một nội dung email cho nhiều liên hệ khác nhau.

Đôi khi vì chưa thử nên có nhiều người dùng nghĩ rằng việc tạo script để gửi email từ Excel sẽ phức tạp.

Trong bài viết đưới đây Taimienphi.vn sẽ hướng dẫn bạn cách gửi email từ bảng tính Excel bằng Script VBA, Collaboration Data Objects (CDO).

CDO là thành phần được sử dụng trong quá trình gửi email, được sử dụng trên các phiên bản Windows đầu tiên. Trước đây CDO còn có tên gọi là CDONTS, sau khi Windows 2000 và XP ra đời, nó được đổi tên là CDO. Thành phần này có sẵn trong cài đặt VBA trong Microsoft Word, Excel và có sẵn để sử dụng. Bằng cách sử dụng CDO giúp cho việc gửi email từ các sản phẩm Windows được tích hợp VBA trở nên dễ dàng hơn.

 

1. Cách gửi email từ bảng tính Excel bằng Script VBA

Thực hiện theo các bước dưới đây để gửi email từ bảng tính Excel bằng Script VBA:

 

Bước 1: Tạo macro VBA

Đầu tiên, truy cập tab Excel Developer. Trong tab Developer, click chọn Insert trong hộp Controls, sau đó chọn Command Button phù hợp.

Vẽ Command Button vào bảng tính, sau đó tạo một macro mới bằng cách click chọn Macros trên thanh ribbon Developer.

Khi bạn click chọn nút Create, trên màn hình sẽ hiển thị trình chỉnh sửa VBA.

Thêm tham chiếu vào thư viện CDO bằng cách điều hướng đến Tools =>References trên trình chỉnh sửa.

Cuộn xuống danh sách cho đến khi tìm thấy Microsoft CDO for Windows 2000 Library. Đánh tích chọn tùy chọn rồi click chọn OK.

Khi click chọn OK nhớ lưu lại tên hàm, nơi bạn có thể dán script.

 

Bước 2: Thiết lập các trường From và To

Bước tiếp theo chúng ta cần làm là tạo các đối tượng mail và thiết lập các trường cần thiết để gửi email.

Cần lưu ý, có nhiều trường là tùy chọn, nhưng các trường From và To là bắt buộc.

Dim CDO_Mail As Object

Dim CDO_Config As Object

Dim SMTP_Config As Variant

Dim strSubject As String

Dim strFrom As String

Dim strTo As String

Dim strCc As String

Dim strBcc As String

Dim strBody As String

strSubject = "Results from Excel Spreadsheet"

strFrom = "rdube02@gmail.com"

strTo = "rdube02@gmail.com"

strCc = ""

strBcc = ""

strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))

Nếu muốn, bạn có thể tạo các chuỗi bất kỳ để tùy chỉnh email đầy đủ và gán nó cho biến strBody.

Ghép các thành phần của thư bằng cách sử dụng chuỗi & để chèn dữ liệu từ sheet Excel bất kỳ vào thông báo email như trong đoạn mã trên.

 

Bước 3: Cấu hình CDO sử dụng SMTP bên ngoài

Tiếp theo chúng ta sẽ cấu hình CDO để sử dụng máy chủ SMTP bên ngoài bất kỳ để gửi email.

Ví dụ dưới đây thiết lập non-SSL thông qua Gmail. Trong trường hợp nếu cần sử dụng SSL, bạn có thể truy cập Github để tìm kiếm các mã nâng cao.

Set CDO_Mail = CreateObject("CDO.Message")

On Error GoTo Error_Handling

Set CDO_Config = CreateObject("CDO.Configuration")

CDO_Config.Load -1

Set SMTP_Config = CDO_Config.Fields

With SMTP_Config

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com"

.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True

.Update

End With

With CDO_Mail

Set .Configuration = CDO_Config

End With

 

Bước 4: Hoàn tất quá trình cài đặt CDO

Sau khi đã cấu hình kết nối với máy chủ SMTP để gửi email, tất cả những gì chúng ta cần làm bây giờ là điền vào các khung phù hợp đối tượng CDO_Mail và phát lệnh Send.

Để làm được điều này, chúng ta sử dụng đoạn mã dưới đây:

CDO_Mail.Subject = strSubject

CDO_Mail.From = strFrom

CDO_Mail.To = strTo

CDO_Mail.TextBody = strBody

CDO_Mail.CC = strCc

CDO_Mail.BCC = strBcc

CDO_Mail.Send

Error_Handling:

If Err.Description <> "" Then MsgBox Err.Description

Trên màn hình sẽ không hiển thị bất kỳ cửa sổ pop-up hay các cảnh báo bảo mật nào trong trường hợp nếu sử dụng đối tượng mail Outlook.

CDO chỉ cần kết hợp email và sử dụng các chi tiết kết nối máy chủ SMTP để kích hoạt việc gửi mail. Đây là cách đơn giản và dễ dàng nhất để kết hợp email vào các script VBA trong Word hay Excel.

Để kết nối Command Button với script này, truy cập trình chỉnh sửa mã, sau đó click chọn Sheet1 để xem mã VBA cho sheet đó.

Nhập tên của hàm, nơi chúng ta sẽ dán đoạn script ở trên vào.

Thư nhận được trong hộp thư đến có dạng như dưới đây:

Lưu ý: Nếu nhận được thông báo lỗi The transport failed to connect to the server, cần đảm bảo bạn đã nhập đúng tên người dùng, mật khẩu, máy chủ SMTP và số cổng trong các dòng mã được liệt kê trong With SMTP_Config.

 

2. Tự động hóa toàn bộ quá trình

Để làm được điều này, chúng ta sẽ phải thay đổi macro. Truy cập Visual Basic Editor, sau đó sao chép và dán toàn bộ mã.

Tiếp theo chọn ThisWorkbook từ phân cấp Project.

Từ 2 menu ở góc trên cùng cửa sổ đoạn mã, chọn Workbook và chọn Open từ menu Methods.

Dán script email ở trên vào Private Sub Workbook_Open(). Điều này để chạy macro bất cứ khi nào chúng ta mở file Excel.

Tiếp theo mở Task Scheduler. Chúng ta sử dụng công cụ này để yêu cầu Windows tự động mở bảng tính theo định kỳ, lúc này này macro sẽ bắt đầu gửi email.

Chọn Create Basic Task... từ menu Action và thực hiện theo các bước hướng dẫn cho đến khi đến cửa sổ Action.

Chọn Start a program rồi click chọn Next.

Sử dụng nút Browse để tìm vị trí Excel trên máy tính hoặc sao chép và dán đường dẫn vào khung Program/script.

Tiếp theo nhập đường dẫn đến tài liệu Excel vào khung Add arguments.

Như vậy chúng ta vừa hoàn tất các bước tự động hóa quá trình gửi email từ bảng tính Excel.

Lưu ý: Bạn sẽ phải điều chỉnh các cài đặt Trust Center để đảm bảo macro hoạt động đúng cách.

Để làm được điều này, mở bảng tính và điều hướng File => Options => Trust Center.

Tại đây, tìm và click chọn Trust Center Settings, trên cửa sổ tiếp theo thiết lập là Never show information about blocked content.

Như vậy bài viết trên đây Taimienphi.vn vừa hướng dẫn bạn cách gửi email từ bảng tính Excel bằng Script VBA cũng như cách để tự động hóa quá trình để thao tác nhanh hơn, tiết kiệm thời gian và cải thiện hiệu suất làm việc. Ngoài ra nếu có bất kỳ thắc mắc hoặc câu hỏi nào cần giải đáp, bạn đọc có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết nhé.

Hiện nay Gmail đã có nhiều sự thay đổi về cả tính năng và giao diện nhằm phục vụ tốt hơn cho người sử dụng, bạn có thể đăng ký Gmail ngay từ bây giờ để bắt đầu sử dụng, cách đăng ký gmail cũng khá nhanh gọn và đơn giản.

Các bước để tạo script và gửi email từ bảng tính Excel bằng cách sử dụng script VBA khá đơn giản. Bạn đọc cùng tham khảo bài viết dưới đây của Taimienphi.vn để tìm hiểu cách gửi email từ bảng tính Excel bằng Script VBA.
Cách vẽ biểu đồ cột chồng bằng Excel
Sửa lỗi #NUM! trong Excel
Microsoft thêm hỗ trợ cho các kiểu dữ liệu Power BI và Power Query tùy chỉnh trong Excel
Microsoft giới thiệu tính năng truy vấn bằng ngôn ngữ tự nhiên trên Excel
Cách sửa lỗi #REF! trong Excel
Tất tần tật cách sửa lỗi VBA trong Excel

ĐỌC NHIỀU