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

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

Author: Siluvia Last Modified: 2025-08-07

Это руководство демонстрирует метод комбинирования сценария 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 с более чем100 потрясающими функциями! Нажмите, чтобы скачать сейчас!

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

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

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

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

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

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

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

Используйте Kutools на вашем любимом языке – поддерживается английский, испанский, немецкий, французский, китайский и более40 других языков!

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

kutools for outlook features1 kutools for outlook features2