NguyenDang95
Senior Member
Chào mọi người. Trong công việc, đôi khi mọi người cần gửi email đến một nhóm với nội dung và theo điều kiện nhất định. Khi tìm hiểu hướng dẫn trên mạng, người ta thường sẽ đi theo hướng (không tính đến trường hợp Mail Merge):
Như vậy, chúng ta sẽ tiến hành thêm chức năng này.
Giả sử chúng ta thiết kế một tệp Excel dùng để gửi email hàng loạt như sau:
Để thêm chức năng chọn tài khoản email để gửi đi, chúng ta tạo một Combo Box bằng cách chọn thẻ Developer | Insert | Combo Box (Form Control).
Đặt code dưới đây vào ThisWorkbook trong cửa sổ soạn thảo VBA (thẻ Developer | Visual Basic | nhấp đúp chuột vào ThisWorkbook).
Code trên đây chỉ có hai nhiệm vụ đơn giản là lấy thông tin tài khoản email trong Outlook khi mở tệp Excel này và thêm vào Combo Box trong Sheet, còn nhiệm vụ còn lại là xóa thông tin trong Combo Box khi đóng lại tệp Excel này (để tránh thông tin bị cộng dồn thêm sau mỗi lần mở tệp Excel này).
Tiếp theo tiến hành sửa code trong hai nút bấm Command Button trên Sheet (đính kèm theo bài viết này).
Tiến hành chạy thử.
Mọi người có thể tìm thấy tệp Excel nói trên đính kèm theo bài viết này.
- Thiết kế một tệp Excel với đầy đủ các trường như địa chỉ email người nhận, tiêu đề thư (Subject), nội dung thư (Body), tệp đính kèm (Attachments), v.v.
- Viết macro đọc qua từng dòng tương ứng với những trường nói trên để áp dụng các giá trị tương ứng cho email mới tạo.
- Gửi email đi.
Như vậy, chúng ta sẽ tiến hành thêm chức năng này.
Giả sử chúng ta thiết kế một tệp Excel dùng để gửi email hàng loạt như sau:
Để thêm chức năng chọn tài khoản email để gửi đi, chúng ta tạo một Combo Box bằng cách chọn thẻ Developer | Insert | Combo Box (Form Control).
Đặt code dưới đây vào ThisWorkbook trong cửa sổ soạn thảo VBA (thẻ Developer | Visual Basic | nhấp đúp chuột vào ThisWorkbook).
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objComboBox As Excel.Shape
Set objComboBox = Sheets(1).Shapes("Drop Down 6")
objComboBox.ControlFormat.RemoveAllItems
ThisWorkbook.Save
Set objComboBox = Nothing
End Sub
Private Sub Workbook_Open()
Call GetOutlookAccountsInfo
End Sub
Code trên đây chỉ có hai nhiệm vụ đơn giản là lấy thông tin tài khoản email trong Outlook khi mở tệp Excel này và thêm vào Combo Box trong Sheet, còn nhiệm vụ còn lại là xóa thông tin trong Combo Box khi đóng lại tệp Excel này (để tránh thông tin bị cộng dồn thêm sau mỗi lần mở tệp Excel này).
Tiếp theo tiến hành sửa code trong hai nút bấm Command Button trên Sheet (đính kèm theo bài viết này).
Tiến hành chạy thử.
Mọi người có thể tìm thấy tệp Excel nói trên đính kèm theo bài viết này.

