Cum să trimiteți mai multe schițe simultan în Outlook?
Dacă există mai multe mesaje nefinalizate în folderul Ciorne și acum, doriți să le trimiteți simultan fără a trimite unul câte unul. Cum ați putea să faceți acest lucru rapid și ușor în Outlook?
Trimiteți toate mesajele nefinalizate simultan în Outlook cu cod VBA
Trimiteți toate mesajele nefinalizate simultan în Outlook cu cod VBA
Următoarele coduri VBA vă pot ajuta să trimiteți toate mesajele de e-mail selectate sau selectate din folderul Ciorne deodată, vă rugăm să procedați astfel:
1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.
2. Apoi apasa Insera > Module, copiați și lipiți codul de mai jos în modulul gol deschis, vedeți captura de ecran:
Cod VBA: trimiteți toate mesajele de poștă electronică simultan în 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. Apoi salvați codul și apăsați F5 pentru a rula acest cod, va apărea o casetă de prompt pentru a vă reaminti dacă trimiteți toate schițele, faceți clic pe Da, vezi captura de ecran:
4. Și o fereastră de dialog va apărea pentru a vă reaminti câte mesaje e-mail au fost trimise, consultați captura de ecran:
5. Apoi faceți clic pe OK , toate e-mailurile din Schițe dosarul va fi trimis imediat, vezi captura de ecran:
note:
1. Codul de mai sus va trimite toate proiectele de e-mail din toate conturile din Outlook.
2. Dacă doriți doar să trimiteți câteva e-mailuri specifice din folderul Ciorne, aplicați următorul cod VBA:
Cod VBA: trimiteți e-mailurile selectate din folderul Ciorne:
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
Articole pe aceeaşi temă:
Cum să trimiteți un e-mail către mai mulți destinatari individual în Outlook?
Cum să trimiteți mesaje de e-mail personalizate către o listă din Excel prin Outlook?
Cum să trimiteți un calendar către mai mulți destinatari individual în Outlook?
Cum să trimiteți e-mail către mai mulți destinatari fără ca aceștia să știe în Outlook?
Kutools pentru Outlook - aduce 100 de caracteristici avansate în Outlook și face munca mult mai ușoară!
- Auto CC / BCC prin reguli la trimiterea e-mailului; Auto înainte Mai multe e-mailuri personalizate; Răspuns automat fără server de schimb și mai multe funcții automate ...
- Avertisment BCC - afișați mesajul când încercați să răspundeți la toate dacă adresa dvs. de e-mail se află în lista BCC; Amintiți-vă când lipsesc atașamentele, și mai multe caracteristici de reamintire ...
- Răspundeți (Toate) Cu toate atașamentele din conversația prin e-mail; Răspunde la multe e-mailuri în secunde; Adăugare automată felicitare când răspundeți; Adăugați o dată în subiect ...
- Instrumente de atașament: gestionați toate atașamentele din toate e-mailurile, Detașare automată, Comprimă toate, Redenumiți toate, Salvați toate ... Raport rapid, Numărați mesajele selectate...
- E-mailuri nedorite puternice după obicei; Eliminați e-mailurile și persoanele de contact duplicate... Vă permit să faceți mai inteligent, mai rapid și mai bine în Outlook.
















