Vai al contenuto principale

Come rispondere a tutti con allegati originali in Outlook?

Autore: Xiaoyang Ultima modifica: 2020-05-29

Normalmente, quando si applica la funzione Rispondi a tutti per rispondere al messaggio a tutti i destinatari in Outlook, gli allegati originali verranno persi automaticamente. È possibile allegare allegati originali quando si risponde a tutti in Outlook?

Rispondi a tutti con allegati originali con codice VBA

Rispondi a tutti con allegati originali con Kutools per Outlook


Rispondi a tutti con allegati originali con codice VBA

Non esiste una funzionalità diretta per gestire questa attività in Outlook, ma è possibile applicare il seguente codice VBA per ottenerla. Si prega di fare con i passaggi seguenti:

1. Avvia Outlook, quindi tieni premuto il pulsante ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Nel Microsoft Visual Basic, Applications Edition finestra, fare doppio clic Questa sessione di Outlook dal Progetto1 (VbaProject.OTM) riquadro per aprire la modalità, quindi copia e incolla il codice seguente nel modulo vuoto.

Codice VBA: rispondi a tutti con ahhachments originali:

Sub ReplyAllWithAttachments()
'Updateby Extendoffice
Dim xItem As Object
On Error Resume Next
Select Case TypeName(Outlook.Application.ActiveWindow)
Case "Explorer"
For Each xItem In Outlook.Application.ActiveExplorer.Selection
GetReplyItem xItem
Next
Case "Inspector"
Set xItem = Outlook.Application.ActiveInspector.CurrentItem
GetReplyItem xItem
End Select
Set xItem = Nothing
End Sub
Sub GetReplyItem(Item As Object)
Dim xReplyMailItem As Outlook.MailItem
On Error Resume Next
If Not Item Is Nothing Then
Set xReplyMailItem = Item.ReplyAll
GetAttachments Item, xReplyMailItem
xReplyMailItem.Display
'xReplyMailItem.Send
Item.UnRead = False
End If
Set xReplyMailItem = Nothing
End Sub
Sub GetAttachments(xSourceItem, xTargetItem)
Dim xFSO As Scripting.FileSystemObject
Dim xTmpPath As String
Dim xAttachment As Attachment
Dim xTmpFile As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
xTmpPath = CreateObject("shell.Application").NameSpace(5).self.Path & "\TmpAttachments\"
If xFSO.FolderExists(xTmpPath) = False Then
MkDir xTmpPath
End If
For Each xAttachment In xSourceItem.Attachments
If IsEmbeddedAttachment(xAttachment) = False Then
xTmpFile = xTmpPath & xAttachment.FileName
xAttachment.SaveAsFile xTmpFile
xTargetItem.Attachments.Add xTmpFile, , , xAttachment.DisplayName
xFSO.DeleteFile xTmpFile
End If
Next
If xFSO.FolderExists(xTmpPath) Then
Kill xTmpPath
End If
Set xFSO = Nothing
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xAttParent As Object
Dim xCID As String, xID As String
Dim xHTML As String
On Error Resume Next
Set xAttParent = Attach.Parent
xCID = ""
xCID = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCID <> "" Then
xHTML = xAttParent.HTMLBody
xID = "cid:" & xCID
If InStr(xHTML, xID) > 0 Then
IsEmbeddedAttachment = True
Else
IsEmbeddedAttachment = False
End If
End If
End Function

doc risponde a tutti con allegato 1

3. E poi clicca Strumenti > Testimonianze nel Microsoft Visual Basic, Applications Edition finestra, nel saltato fuori Riferimenti-Progetto1 finestra di dialogo, controllare Runtime di script Microsoft opzione dal Riferimenti disponibili casella di riepilogo, vedi screenshot:

doc risponde a tutti con allegato 9

4. Quindi salva e chiudi la finestra del codice, quindi puoi aggiungere il pulsante macro nel file Barra degli strumenti di accesso rapido.

5. Apri l'email a cui vuoi rispondere a tutti con allegato Messaggio finestra, quindi scegli Altri comandi dal Personalizza la barra degli strumenti di accesso rapido menu a discesa, vedi screenshot:

doc risponde a tutti con allegato 2

6. Nel Opzioni di Outlook finestra di dialogo, eseguire le seguenti operazioni:

(1.) Seleziona Macro dal Scegli comandi da menu `A tendina;

(2.) Fare clic sul nome della macro che hai appena inserito;

(3.) E quindi fare clic su Aggiungi pulsante per aggiungere la macro nel file Personalizza la barra degli strumenti di accesso rapido.

doc risponde a tutti con allegato 3

7. Quindi fare clic OK per chiudere la finestra di dialogo, ora, il pulsante macro è stato inserito nel file Barra degli strumenti di accesso rapido, vedi screenshot:

doc risponde a tutti con allegato 4

8. Ora, fai clic sul pulsante della macro e viene aperta la finestra del messaggio di risposta con gli allegati originali, quindi componi il messaggio di risposta e fai clic su Invia pulsante, vedi screenshot:

doc risponde a tutti con allegato 5


Rispondi a tutti con allegati originali con Kutools per Outlook

Se si dispone di Kutools for Outlook, Con la sua Rispondi a tutti con allegato funzione, puoi rispondere a tutti con allegati solo un clic.

Kutools for Outlook : con più di 100 utili componenti aggiuntivi di Outlook, liberi di provare senza limitazioni in 60 giorni. 

Dopo l'installazione Kutools for Outlook, per favore fai come questo:

1. Selezionare il messaggio a cui si desidera rispondere a tutti con allegati, quindi fare clic su Kutools > Rispondi con allegato > Rispondi a tutti con allegato, vedi screenshot:

2. E la finestra del messaggio di risposta viene aperta con gli allegati originali, quindi componi il tuo messaggio e invialo, vedi screenshot:

doc risponde a tutti con allegato 7

Fai clic per scaricare Kutools per Outlook e la prova gratuita ora!


I migliori strumenti per la produttività in ufficio

Ultime notizie: lancio di Kutools per Outlook Free Version!

Prova i nuovissimi Kutools per Outlook Versione GRATUITA con oltre 70 incredibili funzionalità, tua da usare PER SEMPRE! Clicca per scaricare ora!

🤖 Kutools AI : E-mail istantanee professionali con la magia dell'intelligenza artificiale: risposte geniali con un solo clic, tono perfetto, padronanza multilingue. Trasforma l'e-mail senza sforzo! ...

???? Automazione di posta elettronica: Risposta automatica (disponibile per POP e IMAP)  /  Pianifica l'invio di e-mail  /  CC/BCC automatico in base alle regole durante l'invio di e-mail  /  Inoltro automatico (regole avanzate)   /  Aggiunta automatica di saluto   /  Suddividi automaticamente le email con più destinatari in singoli messaggi ...

📨 gestione e-mail: Richiamare le e-mail  /  Blocca le email truffe per soggetto e altri  /  Elimina email duplicate  /  Ricerca avanzata  /  Consolidare cartelle ...

📁 Allegati ProSalvataggio in batch  /  Stacca batch  /  Comprimi in lotti  /  Salvataggio automatico   /  Scollegamento automatico  /  Comprimi automaticamente ...

🌟 Magia dell'interfaccia: 😊Più emoji carini e fantastici   /  Ricordarti quando arrivano email importanti  /  Riduci a icona Outlook invece di chiuderlo ...

👍 Meraviglie con un clic: Rispondi a tutti con gli allegati in arrivo  /   E-mail anti-phishing  /  🕘Mostra il fuso orario del mittente ...

👩🏼‍🤝‍👩🏻 Contatti e calendario: Aggiungi in batch contatti dalle email selezionate  /  Dividere un gruppo di contatti in singoli gruppi  /  Rimuovi promemoria compleanno ...

Sblocca istantaneamente Kutools per Outlook con un solo clic—permanentemente libero. Non aspettare, scaricalo ora e aumenta la tua efficienza!

 

 

 

Comments (15)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Is it possible that, after a reboot or windows update, the macro is not working anymore? Also after doing again the procedure is not working anymore
This comment was minimized by the moderator on the site
Bonjour, la macro n'a fonctionné qu'une seule fois, dommage
This comment was minimized by the moderator on the site
Bonjour, nickel, mais n'a fonctionné qu'une fois. dommage
This comment was minimized by the moderator on the site
BonjourCette macros est super malheureusement cela ne fonctionne qu'une fois.. dommage
This comment was minimized by the moderator on the site
is there a macro that replies to all keeps attachments and keeps the original email in text format?
This comment was minimized by the moderator on the site
Thank you very much, you are the only one to share this macro and it's awesome, thank you for your work !
This comment was minimized by the moderator on the site
a macro VBA só funciona por um dia?
This comment was minimized by the moderator on the site
Bonjour,


Super, ça marche à merveille. J'ai visité plein de tuto et d'échange sur le sujet et aucune réponse satisfaisante avant celui-ci. Sachant que jusqu'à présent, je bricolais toujours entre "transférer" et remettre les destinataires ou "répondre à tous" et remettre la ou les pièces jointes. Encore merci.

Harivola
This comment was minimized by the moderator on the site
All files in mail adding as attachment such as image in my signiture.
How can i only attachment files
This comment was minimized by the moderator on the site
Hi,
If you need to exclude the images within the messages which are inserted into the attachments, please apply the below VBA code, hope it can help you!
Sub ReplyAllWithAttachments()
Dim xItem As Object
On Error Resume Next
Select Case TypeName(Outlook.Application.ActiveWindow)
Case "Explorer"
For Each xItem In Outlook.Application.ActiveExplorer.Selection
GetReplyItem xItem
Next
Case "Inspector"
Set xItem = Outlook.Application.ActiveInspector.CurrentItem
GetReplyItem xItem
End Select
Set xItem = Nothing
End Sub
Sub GetReplyItem(Item As Object)
Dim xReplyMailItem As Outlook.MailItem
On Error Resume Next
If Not Item Is Nothing Then
Set xReplyMailItem = Item.ReplyAll
GetAttachments Item, xReplyMailItem
xReplyMailItem.Display
'xReplyMailItem.Send
Item.UnRead = False
End If
Set xReplyMailItem = Nothing
End Sub
Sub GetAttachments(xSourceItem, xTargetItem)
Dim xFSO As Scripting.FileSystemObject
Dim xTmpPath As String
Dim xAttachment As Attachment
Dim xTmpFile As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
xTmpPath = CreateObject("shell.Application").NameSpace(5).self.Path & "\TmpAttachments\"
If xFSO.FolderExists(xTmpPath) = False Then
MkDir xTmpPath
End If
For Each xAttachment In xSourceItem.Attachments
If IsEmbeddedAttachment(xAttachment) = False Then
xTmpFile = xTmpPath & xAttachment.FileName
xAttachment.SaveAsFile xTmpFile
xTargetItem.Attachments.Add xTmpFile, , , xAttachment.DisplayName
xFSO.DeleteFile xTmpFile
End If
Next
If xFSO.FolderExists(xTmpPath) Then
Kill xTmpPath
End If
Set xFSO = Nothing
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xAttParent As Object
Dim xCID As String, xID As String
Dim xHTML As String
On Error Resume Next
Set xAttParent = Attach.Parent
xCID = ""
xCID = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCID <> "" Then
xHTML = xAttParent.HTMLBody
xID = "cid:" & xCID
If InStr(xHTML, xID) > 0 Then
IsEmbeddedAttachment = True
Else
IsEmbeddedAttachment = False
End If
End If
End Function
This comment was minimized by the moderator on the site
I signed up just to say thank you! Skyyang.
This comment was minimized by the moderator on the site
Thanks alot
This comment was minimized by the moderator on the site
Getting compile error as : User-define type not defined at line no " Dim xFSO As Scripting.FileSystemObject" under "Sub GetAttachments(xSourceItem, xTargetItem)"
Kindly Advice on this error.
This comment was minimized by the moderator on the site
Hello, Sam,
Sorry, the article misses the step 3, I have updated this article, please try again. Hope it can help you!

Thank you for your reminder.
This comment was minimized by the moderator on the site
Thank you so much skyyang!!

Works like a charm.

Best Regards
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations