Прескочи на основното съдържание

Как да отпечатате всички прикачени файлове в един/няколко имейла в Outlook?

Автор: Кели Последна промяна: 2022-08-05

Както знаете, той ще отпечата съдържанието на имейла, като например заглавка, тяло, само когато щракнете върху досие > Изпринти в Microsoft Outlook, но не и да отпечатате прикачените файлове. Тук ще ви покажем как лесно да отпечатате всички прикачени файлове в избран имейл в Microsoft Outlook.


Отпечатайте всички прикачени файлове в едно имейл съобщение един по един

Microsoft Outlook ни предоставя Бързо отпечатване функция, която може да ви помогне да отпечатате прикачени файлове в имейл съобщение един по един.

1. Изберете имейл съобщението, чиито прикачени файлове ще отпечатате по-късно.

2. Кликнете върху един прикачен файл в този имейл.

3, Кликнете на Бързо отпечатване бутон в Действия група на Прикачени раздела.

Забележка: Инструменти за прикачване няма да се активира, докато не щракнете върху прикачени файлове в имейли.

4. Появява се диалогов прозорец за отваряне на прикачен файл към имейл и щракнете върху отворено бутон.

Моля, имайте предвид, че тази стъпка ще отвори избрания прикачен файл и ще го отпечата едновременно.

За да отпечатате други прикачени файлове в този имейл, моля, повторете стъпка 2 до стъпка 4.

Бързо запазвайте/експортирайте всички прикачени файлове от множество имейли в Outlook

Обикновено можем да запазваме прикачени файлове от един имейл, като активираме Инструменти за прикачване и прилагане на Запазване на всички прикачени файлове функция в Outlook. Но какво ще стане, ако запазите прикачени файлове от множество имейли или от цялата пощенска папка в Outlook? Опитайте Kutools за Outlook's Запазване на всички (Прикачени файлове).


запазвайте прикачени файлове в множество имейли kto9

Пакетно отпечатване на всички прикачени файлове в едно имейл съобщение

Ако има много прикачени файлове в едно имейл съобщение, отпечатването им един по един ще отнеме много време. А следният метод ще ви преведе лесно през пакетното отпечатване на всички прикачени файлове в избрано имейл съобщение.

1. Изберете имейл съобщението, чиито прикачени файлове ще отпечатате по-късно.

2. В Outlook 2010 или по-нови версии, моля, щракнете върху досие > Изпринти > Опции за печат. Вижте следната екранна снимка:

3. В диалоговия прозорец Печат, моля, проверете Разпечатайте прикачените файлове. Прикачените файлове ще се отпечатват само на принтера по подразбиране опция в Опции за печат раздел.

4, Кликнете на Изпринти бутон.

5. В изскачащия диалогов прозорец Отваряне на прикачен файл към имейл, моля, щракнете върху отворено бутон, за да продължите напред. (Забележка: Този диалогов прозорец ще се появи за всеки прикачен файл поотделно.)

Сега всички прикачени файлове в това избрано имейл съобщение ще бъдат отпечатани наведнъж.


Пакетно отпечатване на всички прикачени файлове и снимки в множество избрани имейли

За да отпечатате всички прикачени файлове в множество имейли, както и всички снимки в тялото на съобщението в Outlook, моля, следвайте стъпките по-долу, за да приложите VBA код.

1. В пощенския списък, моля, задръжте Ctrl or Превключване клавиши за избор на множество имейли, чиито прикачени файлове ще отпечатате.

2, Натиснете Друг + F11 клавишите заедно, за да отворите прозореца на Microsoft Visual Basic за приложения.

3. В прозореца на Microsoft Visual Basic за приложения щракнете Инструменти > Препратки. И след това проверете Microsoft Scripting Runtime опция, както е показано по-долу. След като приключите, щракнете OK.

4. Щракнете Поставете > Модулии след това поставете под VBA кода в прозореца на новия модул.

VBA: Отпечатайте всички прикачени файлове в множество имейли на Outlook

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/03
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        xFilePath = xTempFldPath & "\" & xAttachment.FileName
        xAttachment.SaveAsFile (xFilePath)
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

5. Натиснете F5 клавиша или щракнете върху бягане бутон за изпълнение на този VBA код. Сега ще видите, че всички прикачени файлове в избраните имейли и снимките в тялото на съобщението са отпечатани.

Забележка:

  • Всяко изображение ще изведе изскачащ диалогов прозорец, за да ви поиска потвърждение за печат. Докато другите видове файлове ще бъдат отпечатани директно.
  • Ако има изображения в имейл подпис, те също ще изведат изскачащи диалогови прозорци.
  • Ако получите Макросите в този проект са деактивирани грешка, моля, проверете този урок: Как да активирате и деактивирате макроси в Outlook?

Пакетно отпечатване на всички прикачени файлове в множество избрани имейли, с изключение на снимките в основния текст

За да отпечатате само прикачени файлове в множество имейли, но снимките в тялото на съобщението в Outlook, моля, следвайте стъпките по-долу, за да приложите VBA код.

1. В пощенския списък, моля, задръжте Ctrl or Превключване клавиши за избор на множество имейли, чиито прикачени файлове ще отпечатате.

2, Натиснете Друг + F11 клавишите заедно, за да отворите прозореца на Microsoft Visual Basic за приложения.

3. В прозореца на Microsoft Visual Basic за приложения щракнете Инструменти > Препратки. И след това проверете Microsoft Scripting Runtime опция, както е показано по-долу. След като приключите, щракнете OK.

4. Щракнете Поставете > Модулии след това поставете под VBA кода в прозореца на новия модул.

VBA: Отпечатайте всички прикачени файлове в множество имейли на Outlook

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

5. Натиснете F5 клавиша или щракнете върху бягане бутон за изпълнение на този VBA код. Сега ще видите, че всички прикачени файлове в избраните имейли са отпечатани.

Забележка:

  • Всяко прикачено изображение ще покаже изскачащ диалогов прозорец, за да поискате потвърждение за печат. Докато другите видове файлове ще бъдат отпечатани директно.
  • Изображенията в тялото на съобщението няма да бъдат отпечатани.
  • Ако получите Макросите в този проект са деактивирани грешка, моля, проверете този урок: Как да активирате и деактивирате макроси в Outlook?

 


Демонстрация: отпечатайте един или всички прикачени файлове в имейл на Outlook


тип: В това видео, Kutools разделът е добавен от Kutools за Outlook. Ако имате нужда от него, моля щракнете тук за да имате 60-дневен безплатен пробен период без ограничение!


Най-добрите инструменти за продуктивност в офиса

Kutools за Outlook - Над 100 мощни функции, за да заредите вашия Outlook

🤖 AI Mail Assistant: Незабавни професионални имейли с AI магия - с едно щракване до гениални отговори, перфектен тон, многоезично владеене. Трансформирайте имейла без усилие! ...

📧 Автоматизиране на имейли: Извън офиса (налично за POP и IMAP)  /  График за изпращане на имейли  /  Автоматично CC/BCC по правила при изпращане на имейл  /  Автоматично пренасочване (разширени правила)   /  Автоматично добавяне на поздрав   /  Автоматично разделяне на имейлите с множество получатели на отделни съобщения ...

📨 Управление на Email: Лесно извикване на имейли  /  Блокиране на измамни имейли по теми и други  /  Изтриване на дублирани имейли  /  подробно търсене  /  Консолидиране на папки ...

📁 Прикачени файлове ProПакетно запазване  /  Партидно отделяне  /  Партиден компрес  /  Автоматично запазване   /  Автоматично отделяне  /  Автоматично компресиране ...

🌟 Магия на интерфейса: 😊 Още красиви и готини емотикони   /  Увеличете продуктивността на Outlook с изгледи с раздели  /  Минимизирайте Outlook, вместо да затваряте ...

???? Чудеса с едно кликване: Отговорете на всички с входящи прикачени файлове  /   Антифишинг имейли  /  🕘Показване на часовата зона на подателя ...

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

Над 100 Характеристики Очаквайте вашето проучване! Щракнете тук, за да откриете повече.

 

 

Comments (24)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Is it possible to specify a network printer instead of always printing with the standard printer?
This comment was minimized by the moderator on the site
Dear all,

I had tried the VBA and the code runs but many popups are opening on screen to print images from the mail signature (apparently this is considered an attachment). Anyone knows how to solve it?

S.
This comment was minimized by the moderator on the site
If you don't want to print pictures in the body of a message, please use the code below:
Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function
This comment was minimized by the moderator on the site
Dear Amanda,

Thank you for the code. It worked!

S.
This comment was minimized by the moderator on the site
Hi there,

Sorry that printing images will bring up popups. You will have to confirm each to download all the images. If you don't need to print images, please click Cancel.

Amanda
This comment was minimized by the moderator on the site
I am using Microsoft 365 and this worked after deleting line 9. Thanks! This has saved a bit of time for me.
Rated 5 out of 5
This comment was minimized by the moderator on the site
hallo, ich möchte nur den Anhang der Mails von der angegebenen Adresse senden, wie kann ich das machen, danke
This comment was minimized by the moderator on the site
Vielen, vielen Dank dafür! Hat uns enorm viel Arbeit erspart.Auch ich musste - wie bereits in den Kommentaren geschrieben - die neunte Zeile "Dim xAttachment As Outlook.Attachment On Error Resume Next" entfernen, dann lief der Code einfandfrei durch.
This comment was minimized by the moderator on the site
Hi, this worked fine for me yesterday but now it is saying 'the macros in this project are disabled' Any advice how to enable them? 
This comment was minimized by the moderator on the site
This comment was minimized by the moderator on the site
on line 9 , removing "On Error Resume Next" worked for me.
This comment was minimized by the moderator on the site
Hi everyone, we updated the VBA code in the tutorial on 2022/08/03. If you still need to print all attachments, please check the new code. 😊
This comment was minimized by the moderator on the site
Hi, I have been using this shortcut for a few weeks now, printing all attachments from multiple emails at once, and I have recently been having to remove line 9 as Nilanka said, which has been working, but this no longer works. Im getting the warning box saying the macros in this project are disabled.....and so on... if someone has a solution to make this work as it has been prior to now, please lmk, as i am selecting about 60 emails all containing attachments to print. Thanks
This comment was minimized by the moderator on the site
This comment was minimized by the moderator on the site
Thank you 
This comment was minimized by the moderator on the site
yes this just worked for me as well. Thank you!
This comment was minimized by the moderator on the site
the VBA code gives syntax is error
This comment was minimized by the moderator on the site
if a pdf has the same name the macro prints just one pdf, how can i change the code in order to modify the pdf name?
This comment was minimized by the moderator on the site
if you want to print all attachments together in 1 email here's what you do. first make a folder on your desktop....I named mine "print". go to the email with the attachments....highlight all of the attachments, right click, save all attachments to the print folder. Open the print folder.....highlight all of them.....right click.....print.



now if only I could figure out how to print all the attachments in 200 emails without opening each one and printing it.
This comment was minimized by the moderator on the site
Kutools for Outlook's Detach All (Attachments) feature can help you download all attachments from multiple emails with several clicks! https://www.extendoffice.com/product/kutools-for-outlook/outlook-detach-attachments.html
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations