Chào các anh em trong diễn đàn,
Dạo này công việc của mình cứ lặp đi lặp lại việc gửi báo cáo qua email mỗi ngày. Thật sự tốn thời gian ghê gớm. Sau mấy hôm vật lộn, mình cũng mò mẫm ra cách tự động hóa việc này bằng Excel VBA. Chia sẻ lại cho anh em nào đang gặp tình cảnh tương tự.
Về cơ bản, mình sẽ làm 3 bước chính:
- Tạo báo cáo tự động: Dùng các hàm và công thức Excel để tổng hợp dữ liệu cần thiết. Cái này thì chắc nhiều anh em đã quen rồi.
- Tạo email mẫu: Chuẩn bị sẵn nội dung email, có thể chèn thêm dữ liệu động từ Excel vào.
- Viết VBA để gửi email: Đây là phần chính. Code VBA sẽ tự động mở Outlook (hoặc ứng dụng email khác), đính kèm file báo cáo (hoặc file Excel hiện tại), điền người nhận, tiêu đề, nội dung rồi gửi đi.
Ví dụ một đoạn code đơn giản để gửi email:
Sub SendReportEmail()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "nguoinhan@example.com"
.Subject = "Bao cao ngay " & Format(Date, "dd/mm/yyyy")
.Body = "Kinh gui anh/chi, " & vbCrLf & vbCrLf & _
"Day la bao cao ngay hom nay. Vui long xem dinh kem." & vbCrLf & vbCrLf & _
"Trân trọng,"
.Attachments.Add ThisWorkbook.FullName ' Đính kèm file Excel hiện tại
.Display ' Hoặc .Send để gửi trực tiếp
End With
Set OutMail = Nothing
Set OutApp = Nothing
End SubLưu ý: Đoạn code trên giả định bạn đang dùng Outlook. Nếu dùng ứng dụng khác, có thể cần điều chỉnh chút xíu.
Cách này giúp mình tiết kiệm được kha khá thời gian mỗi ngày, không còn phải ngồi copy-paste hay thao tác thủ công nữa. Anh em nào cần chi tiết hơn về cách xử lý dữ liệu hay tùy chỉnh email thì cứ hỏi nhé!