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

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ể hoàn thành 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ự mà 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 đã có bạn bảo hiểm!





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 các địa chỉ 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 sóng 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).





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, hãy nhấp vào Chèn trong hộp Điều khiển, rồi chọn một nút lệnh.

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 dải băng Nhà phát triển.

Khi bạn nhấp vào Tạo ra , 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ụ > Người giới thiệu trong trình soạn thảo.

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

Khi bạn nhấp vào VÂNG , 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 trường CDO '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 trong khi nhiều trường là tùy chọn, TừĐến Mục này bắt buộc.

phải làm gì nếu bạn nghĩ rằng điện thoại của mình đã bị tấn công
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 đổi.

Ghép các thành phần của thông báo lại với nhau 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ư 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, điều này mã nâng cao trong 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('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 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 chỉ huy.

Đâ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 VBA của Microsoft Word hoặc Excel.

Để kết nối nút lệnh của bạn với tập lệnh này, hãy vào trình chỉnh sửa mã và nhấp vào Sheet1 để 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 tìm ra ai đã hủy theo dõi bạn trên instagram

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

Ghi chú : Nếu bạn nhận được lỗi đọc Quá trình vận chuyển không kết nối được với máy chủ , đả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ê 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 đó, việc tự động hóa quy trình sẽ rất hợp lý.

Để 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 và 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 hệ thống cấp bậc.

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

Dán tập lệnh 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ở tệp Excel.

Tiếp theo, mở ra Bảng kế hoạch .

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.

Lựa chọn Tạo Tác vụ Cơ bản ... từ Hoạt độ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 Hoạt động màn.

Lựa chọn Bắt đầu một chương trình và bấm vào Kế tiếp .

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 / kịch bản đồng ruộng.

Sau đó, nhập đường dẫn đến tài liệu Microsoft Excel của bạn vào Thêm đối số đồng ruộ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 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.

Ghi chú : 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 tin > Tùy chọn > Trung tâm Tin tưởng .

Từ đây, hãy nhấp vào Cài đặt Trung tâm Tin cậy và trên màn hình tiếp theo, hãy đặ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 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 thoải mái với VBA , và đó không phải là nhiệm vụ nhỏ.

biểu tượng nguồn không hiển thị trên thanh tác vụ windows 10

Tuy nhiên, kết quả đã tự nói lên điều đó. Với một ít kinh nghiệm VBA, bạn sẽ sớm có thể làm cho 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 chuyên môn với VBA, nhưng bạn sẽ sớm thấy 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 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.

Đăng lại Đăng lại tiếng riu ríu E-mail Canon so với Nikon: Thương hiệu máy ảnh nào tốt hơn?

Canon và Nikon là hai tên tuổi lớn nhất trong ngành công nghiệp máy ảnh. Nhưng thương hiệu nào cung cấp dòng máy ảnh và ống kính tốt hơn?

Đọc tiếp
Chủ đề liên quan
  • Năng suất
  • Lập trình
  • Mẹo về Email
  • Lập trình
  • Lập trình Visual Basic
  • Microsoft Excel
  • Mẹo Microsoft Office
Giới thiệu về tác giả Ryan Dube(Đã xuất bản 942 bài báo)

Ryan có bằng Cử nhân Kỹ thuật Điện. Anh ấy đã làm việc 13 năm trong lĩnh vực kỹ thuật tự động hóa, 5 năm trong lĩnh vực CNTT và hiện là Kỹ sư ứng dụng. Từng là Biên tập viên quản lý của MakeUseOf, ông đã phát biểu tại các hội nghị quốc gia về Trực quan hóa Dữ liệu và đã được giới thiệu trên đài truyền hình và đài phát thanh quốc gia.

Xem thêm từ Ryan Dube

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký