Перейти к основному содержанию

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

Как вы знаете, он будет печатать только содержимое электронного письма, такое как заголовок, тело, когда вы нажимаете Файл > Печать / PDF в Microsoft Outlook, но не распечатывать вложения. Здесь мы покажем вам, как легко распечатать все вложения в выбранном электронном письме в Microsoft Outlook.


Печатать все вложения в одном сообщении электронной почты по одному

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

1. Выберите сообщение электронной почты, вложения которого вы распечатаете позже.

2. Щелкните одно вложение в этом письме.

3, Нажмите Быстрая печать в Действия группы на Вложения меню.

Обратите внимание Инструменты для вложения не будет активирован, пока вы не нажмете на вложения в письмах.

4. Появится диалоговое окно «Открытие почтового вложения», нажмите кнопку Откройте .

Обратите внимание, что этот шаг откроет выбранное вложение и одновременно распечатает это выбранное вложение.

Чтобы распечатать другие вложения в этом электронном письме, повторите шаги 2–4.

Быстро сохранять / экспортировать все вложения из нескольких писем в Outlook

Обычно мы можем сохранить вложения из одного письма, активировав Инструменты для вложения и применение Сохранить все вложения функция в Outlook. Но что, если сохранять вложения из нескольких писем или из всей почтовой папки в Outlook? Попробуйте Kutools для Outlook Сохраните все (Вложения) особенность.


сохранять вложения в нескольких письмах kto9

Пакетная печать всех вложений в одном сообщении электронной почты

Если в одном сообщении электронной почты много вложений, их распечатка по одному займет много времени. А следующий метод поможет вам легко выполнить пакетную печать всех вложений в выбранном сообщении электронной почты.

1. Выберите сообщение электронной почты, вложения которого вы распечатаете позже.

2. В Outlook 2010 или более поздних версиях щелкните значок Файл > Печать / PDF > Параметры печати. См. Следующий снимок экрана:

3. В диалоговом окне «Печать» установите флажок Распечатать прикрепленные файлы. Вложения будут печататься только на принтере по умолчанию. вариант в Параметры печати .

4, Нажмите Печать / PDF .

5. В появившемся диалоговом окне «Открытие почтового вложения» щелкните значок Откройте кнопку, чтобы продолжить. (Внимание: Это диалоговое окно будет появляться для каждого вложения отдельно.)

Теперь все вложения в этом выбранном сообщении электронной почты будут распечатаны сразу.


Пакетная печать всех вложений и изображений в нескольких выбранных электронных письмах

Чтобы распечатать все вложения в нескольких электронных письмах, а также все изображения в теле сообщения в Outlook, выполните следующие действия, чтобы применить код VBA.

1. В списке рассылки удерживайте Ctrl or Shift клавиши для выбора нескольких писем, вложения которых вы будете распечатывать.

2, нажмите другой + F11 вместе, чтобы открыть окно Microsoft Visual Basic для приложений.

3. В окне Microsoft Visual Basic для приложений щелкните Инструменты > Рекомендации. А затем проверьте Среда выполнения сценариев Microsoft вариант, как показано ниже. Когда закончите, нажмите 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 ключ или щелкните Run кнопку для запуска этого кода VBA. Теперь вы увидите, что все вложения в выбранных электронных письмах и изображения в теле сообщения распечатываются.

Примечание:

  • Каждое изображение вызывает всплывающее диалоговое окно с запросом на подтверждение печати. В то время как другие типы файлов будут напечатаны напрямую.
  • Если в подписи электронной почты есть изображения, они также будут вызывать всплывающие диалоговые окна.
  • Если вы Макросы в этом проекте отключены ошибка, пожалуйста, проверьте этот учебник: Как включить и отключить макросы в Outlook?

Пакетная печать всех вложений в нескольких выбранных электронных письмах, кроме изображений в теле

Чтобы распечатать только вложения в нескольких электронных письмах, но изображения в теле сообщения в Outlook, выполните следующие действия, чтобы применить код VBA.

1. В списке рассылки удерживайте Ctrl or Shift клавиши для выбора нескольких писем, вложения которых вы будете распечатывать.

2, нажмите другой + F11 вместе, чтобы открыть окно Microsoft Visual Basic для приложений.

3. В окне Microsoft Visual Basic для приложений щелкните Инструменты > Рекомендации. А затем проверьте Среда выполнения сценариев Microsoft вариант, как показано ниже. Когда закончите, нажмите 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 ключ или щелкните Run кнопку для запуска этого кода VBA. Теперь вы увидите, что все вложения в выбранных электронных письмах распечатаны.

Примечание:

  • Каждое прикрепленное изображение вызывает всплывающее диалоговое окно с запросом на подтверждение печати. В то время как другие типы файлов будут напечатаны напрямую.
  • Изображения в теле сообщения не будут распечатаны.
  • Если вы Макросы в этом проекте отключены ошибка, пожалуйста, проверьте этот учебник: Как включить и отключить макросы в Outlook?

 


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


Функции: В этом видео, Кутулс вкладка добавлена Kutools for Outlook. Если вам это нужно, нажмите здесь получить 60-дневную бесплатную пробную версию без ограничений!


Лучшие инструменты для офисной работы

Kutools for Outlook - Более 100 мощных функций для улучшения вашего Outlook

🤖 Почтовый помощник с искусственным интеллектом: Мгновенные профессиональные электронные письма с помощью магии искусственного интеллекта: гениальные ответы одним щелчком мыши, идеальный тон, многоязычное владение. Преобразуйте электронную почту без особых усилий! ...

???? Автоматизация электронной почты: Нет на месте (доступно для POP и IMAP)  /  Расписание отправки писем  /  Автоматическое копирование/скрытая копия по правилам при отправке электронной почты  /  Автопересылка (расширенные правила)   /  Автоматическое добавление приветствия   /  Автоматически разделять электронные письма от нескольких получателей на отдельные сообщения ...

📨 Управление электронной почтой: Легко вспоминать электронные письма  /  Блокировка мошеннических писем от субъектов и других лиц  /  Удалить повторяющиеся электронные письма  /  Поиск  /  Объединение папок ...

📁 Вложения 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