Header ads

Header ads
» » » » Hướng dẫn thực hiện gửi email từ bảng tính của Excel bằng tập lệnh VBA

Gửi email từ Microsoft Excel chỉ yêu cầu 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 và bạn thực sự có thể tận dụng tối đa mọi tính năng trong Excel.
Hocviendaotao đã trình bày rất nhiều các macro Excel tại khóa học về Excel tuyệt vời, có thể thực hiện được những thứ giống như các tập lệnh VBA, nhưng không cần kiến ​​thức lập trình. Bên cạnh đó, còn có nhiều thứ nâng cao hơn bạn chỉ có thể làm với VBA, như tạo báo cáo trong bảng tính về tất cả thông tin trên máy tính của bạn.

Tại sao lại gửi email từ Excel?

Có rất nhiều lý do tại sao 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 khi những cập nhật đó được thực hiện. Hoặc bạn có thể có một bảng tính chứa các địa chỉ mail liên lạc và bạn muốn gửi một email đến tất cả những địa chỉ đó cùng một lúc.
Có thể bạn đang nghĩ rằng việc sử dụng tập lệnh trong Excel sẽ phức tạp. Nhưng yên tâm đi! Thực hiện điều đó vô cùng đơn giản.
Bài viết này sẽ hướng dẫn bạn đọc sử dụng một tính năng có sẵn trong Excel VBA từ rất lâu rồi. Đó là Collaboration Data Objects (CDO).
CDO
CDO là một thành phần trong quá trình gửi email, được sử dụng từ những hệ điều Windows đầu tiên. Trước đây, nó được gọi là CDONTS, và sau đó với sự ra đời của Windows 2000XP, cái tên này đã được thay thế bằng "CDO for Windows 2000" (CDO cho Windows 2000). Thành phần này đã được bao gồm trong cài đặt VBA ở các ứng dụng Microsoft Word hoặc Excel và sẵn sàng để sử dụng.
Sử dụng thành phần làm cho việc gửi email từ bên 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ẽ sử dụng thành phần CDO trong Excel để gửi email chứa kết quả từ một ô Excel cụ thể.

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

Bước 1: Tạo VBA Macro

Bước đầu tiên là vào tab Excel Developer.
Bên trong tab Developer, nhấp vào Insert trong hộp Controls, rồi chọn Command Button thích hợp.
Command Button
Vẽ nó vào trang tính và sau đó tạo macro mới cho trang tính bằng cách nhấp vào Macro trong ribbon Developer.
Macro
Khi bạn nhấp vào nút Create, nó sẽ mở 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 trong trình chỉnh sửa.
Thư viện CDO
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 vào hộp kiểm và nhấp OK.
Ok
Khi bạn nhấp vào OK, hãy ghi nhớ tên hàm mà bạn đang dán tập lệnh. Bạn sẽ cần nó sau này.

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

Để thực hiện việc này, trước tiên bạn cần tạo các đối tượng trong mail và thiết lập tất cả các trường cần thiết để gửi email.
Hãy ghi nhớ rằng mặc dù nhiều trường là tùy chọn, bạn bắt buộc phải điền các trường FromTo.
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ị nhất 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ó vào biến strBody.
Ghép các thành phần của email 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 vào ngay trong 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 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 với mục đích gửi email.
Ví dụ này là thiết lập không phải SSL thông qua Gmail. CDO có khả năng SSL, nhưng 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, code nâng cao này trong Github có thể hữu ích cho bạn.
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 thiết lập CDO

Bây giờ bạn đã cấu hình xong kết nối đến máy chủ SMTP để gửi email. Tất cả những gì còn lại bạn phải làm là điền vào các trường thích hợp cho CDO_Mail object 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
Sẽ không có bất kỳ 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 mail Outlook.
CDO chỉ cần đặt tất cả các thành phần của email lại với nhau và sử dụng chi tiết kết nối máy chủ SMTP để kích hoạt việc gửi mail. Đó là cách dễ dàng 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 Command Button với tập lệnh này, hãy vào trình chỉnh sửa code và nhấp vào Sheet1 để xem VBA code cho trang tính đó.
Nhập tên của hàm mà bạn đã dán tập lệnh ở trên.
Nhập tên hàm
Đây là mail mà bạn sẽ nhận được trong hộp thư đến của mình:
Ví dụ
Lưu ý: Nếu bạn nhận được lỗi The transport failed to connect to the server, hãy đả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 code được liệt kê bên dưới With SMTP_Config.

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

Tất cả đều diễn ra tốt đẹp và bạn có thể gửi email từ Excel chỉ bằng một lần nhấn nút. Tuy nhiên, bạn có thể muốn sử dụng chức năng này một cách thường xuyên, nên việc tự động hóa quy trình sẽ có ý nghĩa vô cùng quan trọng.
Để làm như vậy, bạn cần thực hiện thay đổi đối với macro. Đi đến Visual Basic Editor, sau đó sao chép và dán toàn bộ code mà bạn đã gộp lại.
Visual Basic Editor
Tiếp theo, chọn ThisWorkbook từ hệ thống phân cấp Project.
Từ hai trường dropdown ở đầu cửa sổ code, chọn WorkbookOpen từ menu dropdown Methods.
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ở file Excel.
Tiếp theo, mở Task Scheduler.
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 được đặt trước. Tại thời điểm đó macro của bạn sẽ được kích hoạt và gửi email.
Đặt thời gian
Chọn Create Basic Task... từ menu Action 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 tới màn hình Action.
Chọn Start a program và nhấn Next.
Start a program
Sử dụng nút Browse để tìm vị trí của Microsoft Excel trên máy tính hoặc sao chép và 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.
Hoàn tất quá trình và lịch biểu 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 một vài phút, sau đó sửa đổi lại khoảng thời gian, khi bạn xác nhận rằng nó đã hoạt động.
Lưu ý: Bạn có thể phải điều chỉnh cài đặt Trust Center để đả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 File > Options > Trust Center.
Từ đây, hãy nhấp vào Trust Center Settings và trên màn hình tiếp theo, hãy chọn Never show information about blocked content.
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ể là một thử thách. Nếu bạn thực sự muốn làm chủ phần mềm, bạn sẽ cần phải thoải mái với VBA và đó không phải là một nhiệm vụ dễ dàng.
Tuy nhiên, với một ít kinh nghiệm về VBA, bạn sẽ sớm có thể lập trình Microsoft Excel thực hiện các tác vụ cơ bản một cách tự động, giúp bạn có thêm thời gian để tập trung vào các vấn đề quan trọng hơn.
Cần có thời gian để tích lũy kiến ​​thức chuyên môn về VBA, nhưng bạn sẽ sớm thấy được thành quả nếu thực sự nghiêm túc.
Chúc bạn thành công!
Xem thêm:
    Học viện Đào tạo Trực Tuyến
    Public group · 10280 members

    Join Group
    Chia sẻ kiến thức, kinh nghiệm giúp bạn có nhiều trải nghiệm và kiến thức hơn
    HƯỚNG DẪN THIẾT KẾ QUẢNG CÁO VÀ ĐỒ HỌA CHUYÊN NGHIỆP VỚI CANVA
    Hãy tham gia khóa học để trở thành người chuyên nghiệp. Tuyệt HAY!😲👍
     Khoa hoc hay
    Khóa học Phân tích dữ liệu sử dụng Microsoft Power BI

    Khóa hoc lập trình bằng Python tại đây



    Nếu bạn muốn tạo video chuyên nghiệp và sáng tạo hãy tham gia khóa học HƯỚNG DẪN TỰ TẠO VIDEO CLIP CHUYÊN NGHIỆP SÁNG TẠO

     Xây dựng website​​​​

    Hacker mũ trắng




    Hãy tham gia khóa học để biết mọi thứ

    Để tham gia tất cả các bài học, Bạn nhấn vào đây 

    Khóa học sử dụng Adobe Presenter-Tạo bài giảng điện tử
     Khoa hoc hay
    http://hoc.elearninghaiphong.com/main/noidungkhoahoc/71
    Tham gia nhóm Facebook


    Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
    Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
    Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

    About Học viện đào tạo trực tuyến

    Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
    - Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
    - Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
    HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
    «
    Next
    Bài đăng Mới hơn
    »
    Previous
    Bài đăng Cũ hơn