Làm cách nào để gửi nhiều bản nháp cùng một lúc trong Outlook?
Nếu có nhiều thư nháp trong thư mục Thư nháp của bạn và bây giờ, bạn muốn gửi chúng cùng một lúc mà không cần gửi từng thư một. Làm cách nào bạn có thể giải quyết công việc này một cách nhanh chóng và dễ dàng trong Outlook?
Gửi tất cả thư nháp cùng một lúc trong Outlook với mã VBA
Gửi tất cả thư nháp cùng một lúc trong Outlook với mã VBA
Các mã VBA sau có thể giúp bạn gửi tất cả hoặc các email nháp đã chọn từ thư mục Thư nháp cùng một lúc, vui lòng thực hiện như sau:
1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
2. Sau đó nhấn vào Chèn > Mô-đun, sao chép và dán mã bên dưới vào mô-đun trống đã mở, xem ảnh chụp màn hình:
Mã VBA: Gửi tất cả các email nháp cùng một lúc trong Outlook:
Sub SendAllDraftEmails()
Dim xAccount As Account
Dim xDraftFld As Folder
Dim xItemCount As Integer
Dim xCount As Integer
Dim xDraftsItems As Outlook.Items
Dim xPromptStr As String
Dim xYesOrNo As Integer
Dim i As Long
Dim xCurFld As Folder
Dim xTmpFld As Folder
On Error Resume Next
xItemCount = 0
xCount = 0
Set xTmpFld = Nothing
Set xCurFld = Application.ActiveExplorer.CurrentFolder
For Each xAccount In Outlook.Application.Session.Accounts
Set xDraftFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
xItemCount = xItemCount + xDraftFld.Items.Count
If xDraftFld.EntryID = xCurFld.EntryID Then
Set xTmpFld = xCurFld.Parent
End If
Next xAccount
Set xDraftFld = Nothing
If xItemCount > 0 Then
xPromptStr = "Are you sure to send out all the drafts?"
xYesOrNo = MsgBox(xPromptStr, vbQuestion + vbYesNo, "Kutools for Outlook")
If xYesOrNo = vbYes Then
If Not xTmpFld Is Nothing Then
Set Application.ActiveExplorer.CurrentFolder = xTmpFld
End If
VBA.DoEvents
For Each xAccount In Outlook.Application.Session.Accounts
Set xDraftFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
Set xDraftsItems = xDraftFld.Items
For i = xDraftsItems.Count To 1 Step -1
If xDraftsItems.Item(i).Recipients.Count <> 0 Then
xDraftsItems.Item(i).sEnd
xCount = xCount + 1
End If
Next
Next xAccount
VBA.DoEvents
Set Application.ActiveExplorer.CurrentFolder = xCurFld
MsgBox "Successfully sent " & xCount & " messages", vbInformation, "Kutools for Outlook"
End If
Else
MsgBox "No Drafts!", vbInformation + vbOKOnly, "Kutools for Outlook"
End If
End Sub
3. Sau đó lưu mã và nhấn F5 để chạy mã này, một hộp nhắc sẽ bật lên để nhắc bạn nếu gửi tất cả các bản nháp, hãy nhấp vào Có, xem ảnh chụp màn hình:
4. Và một hộp thoại sẽ bật ra để nhắc bạn có bao nhiêu email nháp đã được gửi đi, hãy xem ảnh chụp màn hình:
5. Và sau đó nhấp vào OK , tất cả các email trong Nháp thư mục sẽ được gửi cùng một lúc, xem ảnh chụp màn hình:
Ghi chú:
1. Đoạn mã trên sẽ gửi tất cả các email nháp từ tất cả các tài khoản trong Outlook của bạn.
2. Nếu bạn chỉ muốn gửi một số email cụ thể từ thư mục Thư nháp, vui lòng áp dụng mã VBA sau:
Mã VBA: Gửi các email đã chọn từ thư mục Thư nháp:
Sub SendSelectedDraftEmails()
Dim xSelection As Selection
Dim xPromptStr As String
Dim xYesOrNo As Integer
Dim i As Long
Dim xAccount As Account
Dim xCurFld As Folder
Dim xDraftsFld As Folder
Dim xTmpFld As Folder
Dim xArr() As String
Dim xCount As Integer
Dim xMail As MailItem
On Error Resume Next
xCount = 0
Set xTmpFld = Nothing
Set xCurFld = Application.ActiveExplorer.CurrentFolder
For Each xAccount In Outlook.Application.Session.Accounts
Set xDraftsFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
If xDraftsFld.EntryID = xCurFld.EntryID Then
Set xTmpFld = xCurFld.Parent
End If
Next xAccount
If xTmpFld Is Nothing Then
MsgBox "The current folder is not a draft folder", vbInformation, "Kutools for Outlook"
Exit Sub
End If
Set xSelection = Outlook.Application.ActiveExplorer.Selection
If xSelection.Count > 0 Then
xPromptStr = "Are you sure to send out the selected " & xSelection.Count & " draft item(s)?"
xYesOrNo = MsgBox(xPromptStr, vbQuestion + vbYesNo, "Kutools for Outlook")
If xYesOrNo = vbYes Then
ReDim xArr(xSelection.Count - 1)
For i = 1 To xSelection.Count
xArr(i - 1) = xSelection.Item(i).EntryID
Next
Set Application.ActiveExplorer.CurrentFolder = xTmpFld
VBA.DoEvents
For i = 0 To UBound(xArr)
Set xMail = Application.Session.GetItemFromID(xArr(i))
If xMail.Recipients.Count <> 0 Then
xMail.sEnd
xCount = xCount + 1
End If
Next
VBA.DoEvents
Set Application.ActiveExplorer.CurrentFolder = xCurFld
MsgBox "Successfully sent " & xCount & " messages", vbInformation, "Kutools for Outlook"
End If
Else
MsgBox "No items selected!", vbInformation, "Kutools for Outlook"
End If
End Sub
Bài viết liên quan:
Làm thế nào để gửi một email đến nhiều người nhận riêng lẻ trong Outlook?
Làm thế nào để gửi email hàng loạt được cá nhân hóa đến một danh sách từ Excel qua Outlook?
Làm thế nào để gửi một lịch đến nhiều người nhận riêng lẻ trong Outlook?
Làm thế nào để gửi email đến nhiều người nhận mà họ không biết trong Outlook?
Công cụ năng suất văn phòng tốt nhất
Kutools cho Outlook - Hơn 100 tính năng mạnh mẽ để tăng cường Outlook của bạn
📧 Tự động hoá email: Vắng Mặt (Có sẵn cho POP và IMAP) / Lên lịch gửi email / Tự động CC/BCC theo quy định khi gửi Email / Tự động chuyển tiếp (Quy tắc nâng cao) / Tự động thêm lời chào / Tự động chia email nhiều người nhận thành các tin nhắn riêng lẻ hữu ích. Cảm ơn !
📨 Quản lý email: Dễ dàng thu hồi email / Chặn email lừa đảo theo chủ đề và những người khác / Xóa các email trùng lặp / Tìm Kiếm Nâng Cao / Hợp nhất các thư mục hữu ích. Cảm ơn !
📁 Tệp đính kèm chuyên nghiệp: Lưu hàng loạt / Tách hàng loạt / Nén hàng loạt / Tự động lưu / Tự động tách / Tự động nén hữu ích. Cảm ơn !
🌟 Giao diện ma thuật: 😊Thêm nhiều biểu tượng cảm xúc đẹp và thú vị hơn / Tăng năng suất Outlook của bạn với chế độ xem theo thẻ / Thu nhỏ Outlook thay vì đóng hữu ích. Cảm ơn !
👍 Kỳ quan chỉ bằng một cú nhấp chuột: Trả lời tất cả bằng tệp đính kèm đến / Email chống lừa đảo / 🕘Hiển thị múi giờ của người gửi hữu ích. Cảm ơn !
👩🏼🤝👩🏻 Danh bạ & Lịch: Thêm hàng loạt liên hệ từ các email đã chọn / Chia nhóm liên hệ thành các nhóm riêng lẻ / Xóa lời nhắc sinh nhật hữu ích. Cảm ơn !
Trên 100 tính năng Chờ đợi sự khám phá của bạn! Bấm vào đây để khám phá thêm.