Przejdź do głównej zawartości

Jak odpowiedzieć wszystkim oryginalnymi załącznikami w Outlooku?

Zwykle po zastosowaniu funkcji Odpowiedz wszystkim, aby odpowiedzieć na wiadomość do wszystkich odbiorców w programie Outlook, oryginalne załączniki zostaną automatycznie utracone. Czy można dołączyć oryginalne załączniki podczas odpowiadania wszystkim w Outlooku?

Odpowiedz wszystkim z oryginalnymi załącznikami z kodem VBA

Odpowiedz wszystkim, używając oryginalnych załączników za pomocą Kutools for Outlook


Odpowiedz wszystkim z oryginalnymi załącznikami z kodem VBA

W Outlooku nie ma bezpośredniej funkcji do wykonania tego zadania, ale możesz zastosować następujący kod VBA, aby to osiągnąć. Wykonaj poniższe czynności:

1. Uruchom program Outlook, a następnie przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2, w Microsoft Visual Basic for Applications kliknij dwukrotnie Ta sesja programu Outlook z Project1 (VbaProject.OTM) okienko, aby otworzyć tryb, a następnie skopiuj i wklej następujący kod do pustego modułu.

Kod VBA: Odpowiedz wszystkim z oryginalnymi ahhachments:

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

dokument odpowiada na wszystkie z załącznikiem 1

3. A następnie kliknij Tools > Referencje Microsoft Visual Basic for Applications okno, w wyskakującym oknie Referencje-projekt 1 okno dialogowe, zaznacz Środowisko wykonawcze skryptów firmy Microsoft Microsoft opcja z Dostępne referencje pole listy, zobacz zrzut ekranu:

dokument odpowiada na wszystkie z załącznikiem 9

4. Następnie zapisz i zamknij okno kodu, a następnie możesz dodać przycisk makro do pliku Pasek narzędzi szybkiego dostępu.

5. Otwórz wiadomość e-mail, na którą chcesz odpowiedzieć, zawierającą załącznik Wiadomość okno, a następnie wybierz Więcej poleceń z Dostosuj pasek narzędzi Szybki dostęp rozwiń, zobacz zrzut ekranu:

dokument odpowiada na wszystkie z załącznikiem 2

6, w Opcje programu Outlook w oknie dialogowym wykonaj następujące operacje:

(1.) Wybierz Makra z Wybierz polecenia z Lista rozwijana;

(2.) Kliknij nazwę makra, którą właśnie wstawiłeś;

(3.) A następnie kliknij Dodaj przycisk, aby dodać makro do pliku Dostosuj pasek narzędzi Szybki dostęp.

dokument odpowiada na wszystkie z załącznikiem 3

7. Następnie kliknij OK aby zamknąć okno dialogowe, teraz przycisk makro został wstawiony do Pasek narzędzi szybkiego dostępuzobacz zrzut ekranu:

dokument odpowiada na wszystkie z załącznikiem 4

8. Teraz kliknij przycisk makro, otworzy się okno wiadomości zwrotnej z oryginalnymi załącznikami, następnie utwórz wiadomość odpowiedzi i kliknij Wyślij przycisk, zobacz zrzut ekranu:

dokument odpowiada na wszystkie z załącznikiem 5


Odpowiedz wszystkim, używając oryginalnych załączników za pomocą Kutools for Outlook

Jeśli Kutools dla programu Outlook, Z siedzibą w Odpowiedz wszystkim z załącznikiem Dzięki tej funkcji możesz odpowiedzieć na wszystkie z załącznikami jednym kliknięciem.

Kutools dla programu Outlook : z ponad 100 przydatnymi dodatkami do Outlooka, które można wypróbować bezpłatnie przez 60 dni bez ograniczeń. 

Po zainstalowaniu Kutools dla programu Outlook, zrób tak:

1. Wybierz wiadomość, na którą chcesz odpowiedzieć wraz z załącznikami, a następnie kliknij Kutools > Odpowiedz z załącznikiem > Odpowiedz wszystkim z załącznikiemzobacz zrzut ekranu:

2. Otworzy się okno odpowiedzi z oryginalnymi załącznikami. Następnie utwórz wiadomość i wyślij ją, zobacz zrzut ekranu:

dokument odpowiada na wszystkie z załącznikiem 7

Kliknij, aby pobrać Kutools dla programu Outlook i bezpłatną wersję próbną już teraz!


Najlepsze narzędzia biurowe

Kutools dla programu Outlook - Ponad 100 zaawansowanych funkcji, które usprawnią Twoje perspektywy

🤖 Asystent poczty AI: Natychmiastowe profesjonalne e-maile z magią AI — genialne odpowiedzi jednym kliknięciem, doskonały ton, biegła znajomość wielu języków. Zmień e-mailing bez wysiłku! ...

📧 Automatyzacja poczty e-mail: Poza biurem (dostępne dla POP i IMAP)  /  Zaplanuj wysyłanie wiadomości e-mail  /  Automatyczne CC/BCC według reguł podczas wysyłania wiadomości e-mail  /  Automatyczne przewijanie (Zasady zaawansowane)   /  Automatyczne dodawanie powitania   /  Automatycznie dziel wiadomości e-mail od wielu odbiorców na pojedyncze wiadomości ...

📨 Zarządzanie e-mail: Łatwe przywoływanie e-maili  /  Blokuj oszukańcze wiadomości e-mail według tematów i innych  /  Usuń zduplikowane wiadomości e-mail  /  Wiecej opcji  /  Konsoliduj foldery ...

📁 Załączniki ProZapisz zbiorczo  /  Odłącz partię  /  Kompresuj wsadowo  /  Automatyczne zapisywanie   /  Automatyczne odłączanie  /  Automatyczna kompresja ...

🌟 Magia interfejsu: 😊Więcej ładnych i fajnych emotikonów   /  Zwiększ produktywność programu Outlook dzięki widokom na kartach  /  Zminimalizuj program Outlook zamiast go zamykać ...

>> Cuda jednym kliknięciem: Odpowiedz wszystkim, dodając przychodzące załączniki  /   E-maile chroniące przed phishingiem  /  🕘Pokaż strefę czasową nadawcy ...

👩🏼‍🤝‍👩🏻 Kontakty i kalendarz: Grupowe dodawanie kontaktów z wybranych e-maili  /  Podziel grupę kontaktów na pojedyncze grupy  /  Usuń przypomnienia o urodzinach ...

O Cechy 100 Poczekaj na eksplorację! Kliknij tutaj, aby dowiedzieć się więcej.

 

 

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
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations