Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Thư Điện Tử

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Để gửi email từ Microsoft Excel chỉ cần một vài script đơn giản. Thêm chức năng này vào bảng tính của bạn và bạn thực sự có thể nâng cao khả năng hoàn thành công việc trong Excel.

Chúng tôi đã bao gồm nhiều macro Excel tuyệt vời, có thể thực hiện những điều tương tự như script VBA, nhưng không cần kiến thức lập trình. Nhưng có nhiều việc nâng cao bạn chỉ có thể làm với VBA, như tạo báo cáo bảng tính với tất cả thông tin PC của bạn.

Thích xem hướng dẫn này dưới dạng video? Chúng tôi đã lo cho bạn!

Tại Sao Gửi Email Từ Excel?

Có nhiều lý do bạn có thể muốn gửi email từ bên trong Microsoft Excel.

Có thể bạn có nhân viên cập nhật tài liệu hoặc bảng tính hàng tuần, và bạn muốn nhận thông báo email khi các cập nhật đó hoàn tất. Hoặc bạn có thể có bảng tính danh bạ và muốn gửi một email đến tất cả họ cùng lúc.

Bạn có thể nghĩ rằng viết script phát sóng email từ Excel sẽ phức tạp. Điều đó hoàn toàn không đúng.

Kỹ thuật trong bài viết này sẽ sử dụng một tính năng có sẵn trong Excel VBA đã lâu, Collaboration Data Objects (CDO).

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

CDO là thành phần nhắn tin được sử dụng trong Windows từ các thế hệ đầu tiên của hệ điều hành. Nó từng gọi là CDONTS, và sau đó với sự ra mắt của Windows 2000 và XP, được thay thế bằng "CDO for Windows 2000". Thành phần này đã được bao gồm trong cài đặt VBA của bạn trong Microsoft Word hoặc Excel và sẵn sàng sử dụng.

Việc sử dụng thành phần này làm cho việc gửi email từ trong các sản phẩm Windows với VBA cực kỳ dễ dàng. Trong ví dụ này, bạn sẽ dùng thành phần CDO trong Excel để gửi email sẽ chuyển kết quả từ một ô Excel cụ thể.

Bước 1: Tạo Macro VBA

Bước đầu tiên là chuyển đến tab Developer (Nhà phát triển) của Excel.

Bên trong tab Developer, nhấp vào Chèn trong hộp Controls (Điều khiển), sau đó chọn nút lệnh (command button).

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Vẽ nó vào trang tính và tạo macro mới cho nó bằng cách nhấp vào Macros trong dải Developer (Nhà phát triển).

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Khi bạn nhấp nút Tạo, nó sẽ mở trình soạn thảo VBA.

Thêm tham chiếu đến thư viện CDO bằng cách điều hướng đến Công cụ > Tham chiếu trong trình soạn thảo.

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Cuộn xuống danh sách cho đến khi bạn tìm thấy Microsoft CDO for Windows 2000 Library. Đánh dấu ô kiểm và nhấp OK.

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Khi bạn nhấp OK, hãy ghi nhớ tên hàm nơi bạn dán script. Bạn sẽ cần nó sau.

Bước 2: Thiết Lập Các Trường CDO "From" Và "To"

Để làm điều này, trước tiên bạn cần tạo đối tượng mail và thiết lập tất cả các trường cần thiết để gửi email.

Hãy nhớ rằng trong khi nhiều trường là tùy chọn, 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 = "Kết quả từ bảng tính Excel"
strFrom = "rdube02@gmail.com"
strTo = "rdube02@gmail.com"
strCc = ""
strBcc = ""
strBody = "Tổng kết quả quý này là: " & Str(Sheet1.Cells(2, 1))

Điều tuyệt vời về việc này là bạn có thể tạo bất kỳ chuỗi nào bạn muốn để tùy chỉnh một thông điệp email đầy đủ và gán nó cho biến strBody.

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

Bước 3: Cấu Hình CDO Để Sử Dụng SMTP Bên Ngoài

Phần code tiếp theo là nơi bạn sẽ cấu hình CDO để sử dụng bất kỳ máy chủ SMTP bên ngoài nào để gửi email.

Ví dụ này là thiết lập non-SSL qua Gmail. CDO có khả năng SSL, nhưng đó nằm ngoài phạm vi bài viết này. Nếu bạn cần dùng SSL, code nâng cao này trên Github có thể giúp.

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("https://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("https://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com"
.Item("https://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("https://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Bước 4: Hoàn Thiết Thiết Lập CDO

Bây giờ bạn đã cấu hình kết nối đến máy chủ SMTP để gửi email, tất cả những gì bạn phải làm là điền các trường thích hợp cho đối tượng CDO_Mail, và phát lệnh Send.

Đây là cách bạn làm điều đó:

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

Không會有 bất kỳ hộp bật lên hay thông báo cảnh báo bảo mật nào, điều này có thể xảy ra khi bạn dùng đối tượng mail của Outlook.

CDO đơn giản là ghép email lại và sử dụng chi tiết kết nối SMTP của bạn để gửi tin nhắn. Đây là cách dễ nhất để tích hợp email vào script VBA của Microsoft Word hoặc Excel.

Để kết nối nút lệnh của bạn với script này, vào trình soạn thảo code và nhấp vào Sheet1 để xem code VBA cho trang tính đó.

Nhập tên hàm nơi bạn dán script ở trên.

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Đây là hình ảnh tin nhắn tôi nhận được trong hộp thư đến:

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Lưu ý: Nếu bạn nhận được lỗi The transport failed to connect to the server (Giao vận không thể kết nối đến máy chủ), hãy chắc chắn 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 code liệt kê dưới With SMTP_Config.

Tiến Xa Hơn Và Tự Động Hóa Toàn Bộ Quy Trình

Việc có thể gửi email từ Excel chỉ bằng một cú nhấp chuột là tốt. Tuy nhiên, bạn có thể muốn sử dụng chức năng này thường xuyên, trong trường hợp đó tự động hóa quy trình sẽ hợp lý.

Để làm vậy, bạn cần thay đổi macro. Vào Trình soạn thảo Visual Basic và sao chép dán toàn bộ code chúng ta đã xây dựng.

Tiếp theo, chọn ThisWorkbook từ thứ bậc Project (Dự án).

Từ hai trường dropdown ở đầu cửa sổ code, chọn Workbook và chọn Open từ dropdown Methods (Phương thức).

Dán script email ở trên vào Private Sub Workbook_Open().

Điều này sẽ chạy macro bất cứ khi nào bạn mở file Excel.

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Tiếp theo, mở Task Scheduler (Trình lên lịch tác vụ).

Bạn sẽ dùng công cụ này để yêu cầu Windows tự động mở bảng tính theo khoảng thời gian đều đặn, tại thời điểm macro của bạn sẽ được khởi chạy, gửi email.

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Chọn Create Basic Task... (Tạo tác vụ cơ bản...) từ menu Action (Hành động) và làm theo trình thủ thuật cho đến khi đến màn hình Action.

Chọn Start a program (Khởi động chương trình) và nhấp Next (Tiếp theo).

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Sử dụng nút Browse (Duyệt) để tìm vị trí Microsoft Excel trên máy tính của bạn, hoặc sao chép dán đường dẫn vào trường Program/script.

Sau đó, nhập đường dẫn đến tài liệu Microsoft Excel của bạn vào trường Add arguments (Thêm đối số).

Hoàn tất trình thủ thuật, và lịch trình của bạn sẽ được thiết lập.

Việc chạy thử bằng cách lên lịch hành động cho vài phút trong tương lai, sau đó sửa đổi tác vụ khi bạn xác nhận nó hoạt động là đáng giá.

Lưu ý: Bạn có thể phải điều chỉnh cài đặt Trust Center (Trung tâm tin cậy) để đảm bảo macro chạy đúng cách.

Để làm vậy, mở bảng tính và điều hướng đến File > Options (Tùy chọn) > Trust Center.

Từ đây, nhấp Trust Center Settings (Cài đặt Trung tâm tin cậy), và trên màn hình tiếp theo đặt nút radio thành Never show information about blocked content (Không bao giờ hiển thị thông tin về nội dung bị chặn).

Cách Gửi Email Từ Bảng Tính Excel Sử Dụng Script VBA

Làm Cho Microsoft Excel Làm Việc Cho Bạn

Microsoft Excel là một công cụ cực kỳ mạnh mẽ, nhưng học cách tận dụng tối đa nó có thể hơi đáng sợ. Nếu bạn muốn thực sự thành thạo phần mềm, bạn sẽ cần thoải mái với VBA, và đó không phải là nhiệm vụ nhỏ.

Tuy nhiên, kết quả nói lên mọi thứ. Với một chút kinh nghiệm VBA, bạn sớm sẽ có thể làm cho Microsoft Excel thực hiện các tác vụ cơ bản tự động, cho bạn nhiều thời gian hơn để tập trung vào các vấn đề cấp bách hơn.

Việc xây dựng chuyên môn với VBA mất thời gian, nhưng bạn sớm sẽ thấy trái ngọt của lao động mình nếu bạn kiên trì.

Một nơi tuyệt vời để bắt đầu là hướng dẫn quyền威 của chúng tôi về sử dụng VBA trong Excel. Khi bạn xong với đó, script đơn giản này để gửi email từ Excel sẽ cảm thấy như trò chơi trẻ con.