Перейти до основного матеріалу

Як відповісти всім оригінальними вкладеннями в Outlook?

Зазвичай, коли ви застосовуєте функцію "Відповісти всім", щоб відповісти на повідомлення всім одержувачам у програмі Outlook, оригінальні вкладення будуть автоматично втрачені. Чи можна вкласти оригінальні вкладення, коли відповідаєте усім в Outlook?

Відповідайте всім оригінальними вкладеннями з кодом VBA

Надішліть усім оригінальні вкладення за допомогою Kutools для Outlook


Відповідайте всім оригінальними вкладеннями з кодом VBA

Немає прямої функції для вирішення цього завдання в Outlook, але для його досягнення ви можете застосувати наступний код VBA. Будь ласка, виконайте наступні кроки:

1. Запустіть Outlook, а потім утримуйте ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2, в Microsoft Visual Basic для додатків вікно, двічі клацніть ThisOutlookSession від Проект1 (VbaProject.OTM) , щоб відкрити режим, а потім скопіюйте та вставте наступний код у порожній модуль.

Код VBA: Відповідайте усім оригінальними заходами:

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 відповісти всім із додатком 1

3. А потім клацніть Tools > посилання в Microsoft Visual Basic для додатків вікно, у спливаючому Список літератури-Проект1 діалогове вікно, поставте галочку Виконання сценаріїв Microsoft опція від Доступні посилання вікно списку, див. знімок екрана:

doc відповісти всім із додатком 9

4. Потім збережіть і закрийте вікно коду, а потім можна додати кнопку макросу в Панель швидкого доступу.

5. Відкрийте електронний лист, на який ви хочете відповісти всім із вкладенням Повідомлення вікно, потім виберіть Більше команд від Налаштування панелі швидкого доступу випадаюче, див. знімок екрана:

doc відповісти всім із додатком 2

6, в Параметри Outlook у діалоговому вікні виконайте такі операції:

(1.) Виберіть Макрос від Виберіть команди з випадаючий список;

(2.) Клацніть ім’я макросу, яке ви зараз вставили;

(3.) А потім натисніть додавати , щоб додати макрос у Налаштування панелі швидкого доступу.

doc відповісти всім із додатком 3

7. Потім натисніть OK щоб закрити діалогове вікно, кнопка макросу була вставлена ​​в Панель швидкого доступу, див. скріншот:

doc відповісти всім із додатком 4

8. Тепер натисніть кнопку макросу, і відкриється вікно відповіді з оригінальними вкладеннями, потім складіть відповідь і натисніть Відправити , див. знімок екрана:

doc відповісти всім із додатком 5


Надішліть усім оригінальні вкладення за допомогою Kutools для Outlook

Якщо у вас є Kutools для Outlook, З його Відповісти всім із вкладенням функція, ви можете відповісти всім із вкладеннями лише одним клацанням миші.

Kutools для Outlook : з більш ніж 100 зручними надбудовами Outlook, які можна спробувати без обмежень протягом 60 днів. 

після установки Kutools для Outlook, будь ласка, зробіть так:

1. Виберіть повідомлення, на яке потрібно відповісти всім із вкладеннями, а потім клацніть Кутулс > Відповідь із додатком > Відповісти всім із вкладенням, див. скріншот:

2. І відкриється вікно відповіді з оригінальними вкладеннями, потім складіть повідомлення та надішліть його, див.

doc відповісти всім із додатком 7

Натисніть, щоб завантажити Kutools для Outlook і безкоштовну пробну версію зараз!


Найкращі інструменти продуктивності офісу

Kutools для Outlook - Понад 100 потужних функцій, які покращать ваш Outlook

🤖 AI Mail Assistant: Миттєві професійні електронні листи з магією штучного інтелекту – геніальні відповіді одним клацанням, ідеальний тон, багатомовна майстерність. Трансформуйте електронну пошту без зусиль! ...

???? Автоматизація електронної пошти: Поза офісом (доступно для POP та IMAP)  /  Розклад надсилання електронних листів  /  Автоматична копія/прихована копія за правилами під час надсилання електронної пошти  /  Автоматичне пересилання (розширені правила)   /  Автоматично додавати привітання   /  Автоматично розділяйте електронні листи кількох одержувачів на окремі повідомлення ...

📨 Управління електронною поштою: Легко відкликайте електронні листи  /  Блокуйте шахрайські електронні листи за темами та іншими  /  Видалити повторювані електронні листи  /  розширений пошук  /  Консолідація папок ...

📁 Вкладення ProПакетне збереження  /  Пакетне від'єднання  /  Пакетний компрес  /  Автозавантаження   /  Автоматичне від'єднання  /  Автокомпресія ...

???? Магія інтерфейсу: 😊Більше красивих і класних смайликів   /  Підвищте продуктивність Outlook за допомогою вкладок  /  Згорніть Outlook замість того, щоб закривати ...

👍 Дива в один клік: Відповісти всім із вхідними вкладеннями  /   Антифішингові електронні листи  /  🕘Показувати часовий пояс відправника ...

👩🏼‍🤝‍👩🏻 Контакти та календар: Пакетне додавання контактів із вибраних електронних листів  /  Розділіть групу контактів на окремі групи  /  Видаліть нагадування про день народження ...

більше Особливості 100 Чекайте на ваше дослідження! Натисніть тут, щоб дізнатися більше.

 

 

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