Перейти к содержимому

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

Author: Siluvia Last Modified: 2025-06-05

Это руководство демонстрирует метод комбинирования сценария VBA и правила Outlook, чтобы помочь вам автоматически печатать вложения определенных писем при их поступлении в Outlook.


Автоматическая печать вложений при получении определенных писем

Предположим, вы хотите автоматически печатать вложения входящих писем от определенного отправителя. Вы можете сделать следующее.

Шаг 1: Создайте скрипт в Outlook

Сначала вам нужно создать сценарий VBA в Outlook.

1. Запустите ваш Outlook, одновременно нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. В окне Microsoft Visual Basic for Applications дважды щелкните Project1 > Microsoft Outlook Objects > ThisOutlookSession, чтобы открыть окно ThisOutlookSession (Код), затем скопируйте следующий код в это окно кода.

steps of auto printing attachments when emails arrive in Outlook

VBA код 1: Автоматическая печать вложений (всех типов вложений) при получении писем

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xTempFolder & "\" & xAtt.FileName
      xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
Exit Sub
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

Примечание: Этот код поддерживает печать всех типов вложений, полученных в письмах. Если вы хотите печатать только определенный тип вложений, например PDF-файлы, примените следующий код VBA.

VBA код 2: Автоматическая печать указанного типа вложений при получении писем

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileType As String, xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xAtt.FileName
      xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
      xFileName = xTempFolder & "\" & xFileName
      Select Case xFileType
        Case "pdf"   'change "pdf" to the file extension you want to print
          xAtt.SaveAsFile (xFileName)
          Set xFolderItem = xFolder.ParseName(xFileName)
          xFolderItem.InvokeVerbEx ("print")
      End Select
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
  Exit Sub
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

Примечания:

1. Перед применением этого кода VBA для печати только PDF-файлов во входящих письмах, сначала необходимо загрузить и установить Adobe Acrobat Reader и настроить его как программу для чтения PDF по умолчанию на вашем компьютере.
2. В строке Case "pdf", измените "pdf" на расширение файла, которое вы хотите печатать.

3. Нажмите Инструменты > Ссылки. В открывшемся диалоговом окне Ссылки – Project1 отметьте поле Microsoft Scripting Runtime и нажмите кнопку ОК.

steps of auto printing attachments when emails arrive in Outlook

4. Сохраните код и нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.

Примечание: Убедитесь, что в вашем Outlook включена опция Включить все макросы. Вы можете проверить эту опцию, выполнив шаги, показанные ниже.

steps of auto printing attachments when emails arrive in Outlook
Шаг 2: Создайте правило для использования скрипта

После добавления сценария VBA в Outlook вам нужно создать правило для использования скрипта на основе определенных условий.

1. Перейдите на вкладку Главная, нажмите Правила > Управление правилами и оповещениями.

steps of auto printing attachments when emails arrive in Outlook

2. В диалоговом окне Правила и оповещения нажмите кнопку Новое правило, чтобы создать правило.

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

steps of auto printing attachments when emails arrive in Outlook

3. В первом диалоговом окне Мастер правил выберите Применить правило к получаемым сообщениям в поле Шаг 1, затем нажмите Далее.

steps of auto printing attachments when emails arrive in Outlook

4. Во втором диалоговом окне Мастер правил вам нужно:

4.1) Указать одно или несколько условий в поле Шаг 1 согласно вашим потребностям;
В данном случае я хочу печатать только вложения входящих писем от указанного отправителя. Здесь я отмечаю поле от людей или общественной группы.
4.2) Щелкните подчеркнутое значение в поле Шаг 2, чтобы редактировать условие;
4.3) Нажмите Далее. Смотрите скриншот:
steps of auto printing attachments when emails arrive in Outlook

5. В третьем диалоговом окне Мастер правил вам нужно настроить следующее.

5.1) В разделе Шаг 1: Выберите действие(я) отметьте поле запустить скрипт;
5.2) В разделе Шаг 2 нажмите подчеркнутый текст «скрипт»;
5.3) В открывшемся диалоговом окне Выбор скрипта нажмите имя добавленного выше кода VBA, затем нажмите ОК;
5.4) Нажмите кнопку Далее. Смотрите скриншот:
steps of auto printing attachments when emails arrive in Outlook

Советы: Если опция «запустить скрипт» отсутствует в вашем Мастере правил, вы можете отобразить ее, следуя методу, описанному в этой статье: восстановление недостающей опции Запуск скрипта в правиле Outlook.

6. Затем появится еще одно диалоговое окно Мастер правил, запрашивающее исключения. Вы можете выбрать исключения, если это необходимо, в противном случае нажмите кнопку Далее без выбора.

steps of auto printing attachments when emails arrive in Outlook

7. В последнем диалоговом окне Мастер правил вам нужно указать имя для правила, а затем нажать кнопку Готово.

steps of auto printing attachments when emails arrive in Outlook

8. Затем вернитесь в диалоговое окно Правила и оповещения, вы увидите созданное правило в списке, нажмите кнопку ОК, чтобы завершить все настройки.

steps of auto printing attachments when emails arrive in Outlook

Теперь, когда письмо от указанного человека будет получено, прикрепленные файлы будут автоматически напечатаны.


Связанные статьи

Печатать только вложения из одного письма или выбранных писем в Outlook
В Outlook можно печатать письма, но пробовали ли вы печатать только вложения из одного письма или выбранных писем в Outlook? Эта статья представляет хитрости для решения этой задачи.

Печатать только заголовок сообщения электронной почты в Outlook
При печати электронной почты в Outlook будут напечатаны как заголовок сообщения, так и тело сообщения. Однако в некоторых особых случаях вам может понадобиться распечатать только заголовок сообщения с темой, отправителем, получателями и т. д. Эта статья представит два решения для этого.

Печать календаря за указанный/настраиваемый диапазон дат в Outlook
Обычно при печати календаря в режиме Месяц в Outlook автоматически выбирается месяц, содержащий текущую выбранную дату. Но вам может понадобиться печать календаря за пользовательский диапазон дат, такой как 3 месяца, полгода и т. д. Эта статья представит решение для вас.

Печать контакта с фотографией в Outlook
Обычно при печати контакта в Outlook его фотография не будет напечатана. Но иногда бывает более впечатляющим печатать контакт вместе с его фотографией. Эта статья представит некоторые обходные пути для выполнения этой задачи.

Печать части электронного письма в Outlook
Если вы получили электронное письмо и заметили, что требуется напечатать только часть содержимого письма вместо всего сообщения, что бы вы сделали? На самом деле, Outlook может помочь вам выполнить эту операцию с помощью интернет-браузеров, таких как Firefox и Internet Explorer. Здесь я возьму пример с интернет-браузеров. Посмотрите следующие инструкции.

Больше статей о «печати в Outlook»...


Лучшие инструменты для повышения продуктивности в Office

Срочные новости: Kutools для Outlook запускает бесплатную версию!

Оцените совершенно новую бесплатную версию Kutools для Outlook с более чем70 потрясающими функциями — пользуйтесь ими НАВСЕГДА! Нажмите, чтобы скачать прямо сейчас!

🤖 Kutools AI : Использует передовые технологии искусственного интеллекта для легкой работы с Email: отвечает, резюмирует, оптимизирует, расширяет, переводит и составляет письма.

📧 Автоматизация Email: Автоответчик (доступно для POP и IMAP) / Запланировать отправку писем / Авто Копия/Скрытая копия по правилу при отправке писем / Автоматическое перенаправление (Расширенное правило) / Автоматическое добавление приветствия / Автоматическое разделение писем с несколькими получателями на отдельные сообщения ...

📨 Управление Email: Отозвать письмо / Блокировать мошеннические письма по теме и другим параметрам / Удалить дубликаты писем / Расширенный Поиск / Организовать папки ...

📁 Вложения Pro: Пакетное сохранение / Пакетное открепление / Пакетное сжатие / Автосохранение / Автоматическое отсоединение / Автоматическое сжатие ...

🌟 Магия интерфейса: 😊Больше красивых и крутых Эмодзи / Напоминание о важных письмах / Сворачивайте Outlook вместо закрытия ...

👍 Мгновенные действия: Ответить всем с вложениями / Антифишинговые Email / 🕘Показать часовой пояс отправителя ...

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

Мгновенно активируйте Kutools для Outlook одним кликом. Не ждите — скачайте сейчас и повысьте свою эффективность!

kutools for outlook features1 kutools for outlook features2