Computer >> Máy Tính >  >> Phần mềm >> Thư

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Để gửi email từ Microsoft Excel, chỉ cần một vài tập lệnh đơ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 mức độ bạn có thể đạt được trong Excel.

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

Bạn muốn xem hướng dẫn này dưới dạng video? Chúng tôi đã hỗ trợ bạn!

Tại sao phải gửi Email từ Excel?

Có rất nhiều lý do khiến 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 được thông báo qua email về thời điểm thực hiện các cập nhật đó. Hoặc bạn có thể có một bảng tính liên hệ và bạn muốn gửi một email cho tất cả họ cùng một lúc.

Có thể bạn đang nghĩ rằng việc tạo kịch bản cho một chương trình phát email từ Excel sẽ phức tạp. Đó hoàn toàn không phải là trường hợp.

Kỹ thuật trong bài viết này sẽ sử dụng một tính năng đã có trong Excel VBA từ lâu, Đối tượng dữ liệu cộng tác (CDO).

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

CDO là một thành phần nhắn tin được sử dụng trong Windows từ những thế hệ hệ điều hành rất sớm. Nó từng được gọi là CDONTS, sau đó với sự ra đời của Windows 2000 và XP, được thay thế bằng "CDO cho 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ừ bên trong các sản phẩm Windows với VBA trở nên cực kỳ dễ dàng. Trong ví dụ này, bạn sẽ sử dụng thành phần CDO trong Excel để gửi email gửi 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 Nhà phát triển Excel.

Bên trong tab Nhà phát triển, nhấp vào Chèn trong hộp Điều khiển, rồi chọn một nút lệnh.

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Vẽ nó vào trang tính và sau đó tạo macro mới cho nó bằng cách nhấp vào Macro trong ruy-băng Nhà phát triển.

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

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

Thêm tham chiếu vào thư viện CDO bằng cách điều hướng đến Công cụ > Tài liệu tham khảo trong trình chỉnh sửa.

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

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

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Khi bạn nhấp vào OK , hãy ghi lại tên của hàm mà bạn đang dán tập lệnh. Bạn sẽ cần nó sau.

Bước 2:Thiết lập CDO Trường "Từ" và "Tới"

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

Hãy nhớ rằng mặc dù nhiều trường là tùy chọn, nhưng Từ Tới các trường 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))

Điều thú vị về điều 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 email đầy đủ và gán nó cho strBody biến.

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

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

Phần mã tiếp theo là nơi bạn sẽ định 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à một thiết lập không có SSL thông qua Gmail. CDO có khả năng SSL, nhưng điều đó nằm ngoài phạm vi của bài viết này. Nếu bạn cần sử dụng SSL, mã nâng cao này trong Github có thể giúp ích.

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ện thiết lập CDO

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

Đâ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

Sẽ không có bất kỳ hộp bật lên hoặc 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 sử dụng đối tượng thư Outlook.

CDO chỉ cần tập hợp email lại với nhau và sử dụng chi tiết kết nối máy chủ SMTP của bạn để loại bỏ thông báo. Đây là cách dễ nhất để kết hợp email vào các tập lệnh Microsoft Word hoặc Excel VBA.

Để kết nối nút lệnh của bạn với tập lệnh này, hãy chuyển đến trình chỉnh sửa mã và nhấp vào Trang tính1 để xem mã VBA cho trang tính đó.

Nhập tên của hàm mà bạn đã dán tập lệnh ở trên.

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Đây là tin nhắn trông như thế nào mà tôi nhận được trong hộp thư đến của mình:

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Lưu ý :Nếu bạn nhận được lỗi có nội dung Truyền tải không kết nối được với máy chủ , hãy đảm bảo rằng 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ê bên dưới Với SMTP_Config .

Tiến xa hơn và tự động hóa toàn bộ quy trình

Tất cả đều tốt và tốt khi có thể gửi email từ Excel chỉ bằng một nút bấm. 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 đó, bạn nên tự động hóa quy trình.

Để làm như vậy, bạn cần thực hiện thay đổi đối với macro. Đi tới Trình soạn thảo Visual Basic, sao chép và dán toàn bộ mã mà chúng ta đã ghép lại với nhau.

Tiếp theo, chọn ThisWorkbook từ Dự án phân cấp.

Từ hai trường thả xuống ở đầu cửa sổ mã, hãy chọn Sổ làm việc và chọn Mở từ menu thả xuống Phương pháp.

Dán tập lệnh email ở trên vào Private Sub Workbook_Open () .

Thao tác này sẽ chạy macro bất cứ khi nào bạn mở tệp Excel.

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Tiếp theo, mở Trình lập lịch tác vụ .

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

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Chọn Tạo tác vụ cơ bản ... từ Hành động và làm việc theo cách của bạn thông qua trình hướng dẫn cho đến khi bạn đến Hành động màn hình.

Chọn Bắt đầu chương trình và nhấp vào Tiếp theo .

Cách gửi email từ bảng tính Excel bằng tập lệnh VBA

Sử dụng Duyệt qua để tìm vị trí của Microsoft Excel trên máy tính của bạn hoặc sao chép và dán đường dẫn vào Chương trình / tập lệnh trường.

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

Hoàn thành trình hướng dẫn và lập lịch của bạn sẽ được thực hiện.

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

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

Để làm như vậy, hãy mở bảng tính và điều hướng đến Tệp > Tùy chọn > Trung tâm tin cậy .

Từ đây, nhấp vào Cài đặt trung tâm tin cậy và trên màn hình tiếp theo, đặt quay số radio thành Không bao giờ hiển thị thông tin về nội dung bị chặn .

Làm cho Microsoft Excel hoạt động cho bạn

Microsoft Excel là một công cụ cực kỳ mạnh mẽ, nhưng việc 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 cần phải hiểu rõ về VBA và đó không phải là nhiệm vụ nhỏ.

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

Cần có thời gian để xây dựng kiến ​​thức chuyên môn với VBA, nhưng bạn sẽ sớm thấy được thành quả lao động của mình nếu bạn có thể gắn bó với nó.

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