Як автоматично друкувати вкладення, коли листи надходять в Outlook?
У цьому підручнику демонструється метод поєднання сценарію VBA і правила Outlook, щоб допомогти вам автоматично друкувати вкладення певних листів, коли вони надходять в Outlook.
Автоматично друкувати вкладені файли, коли надходять певні листи
Припустимо, ви хочете автоматично роздрукувати вкладення вхідних листів від певного відправника. Ви можете зробити наступне, щоб це зробити.
Крок 1. Створіть сценарій в Outlook
По-перше, вам потрібно створити сценарій VBA в Outlook.
1. Запустіть Outlook, натисніть інший + F11 клавіші одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.
2 В Microsoft Visual Basic для додатків вікно, двічі клацніть на Project1 > Об'єкти Microsoft Outlook > ThisOutlookSession відкрити ThisOutlookSession (Код) вікно, а потім скопіюйте наступний код у це вікно коду.
Код 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
примітки:
3. Далі клацніть Tools > Список літератури. У спливаючому Список літератури – Проект1 діалогове вікно, перевірте Виконання сценаріїв Microsoft , а потім клацніть на OK кнопки.
4. Збережіть код і натисніть клавішу інший + Q клавіші, щоб закрити Microsoft Visual Basic для додатків вікна.
Примітка: Будь ласка, переконайтеся, що Увімкнути всі макроси параметр увімкнено у вашому Outlook. Ви можете перевірити цю опцію, виконавши наведені нижче дії.
Крок 2. Створіть правило для використання сценарію
Після додавання сценарію VBA в Outlook вам потрібно створити правило для використання сценарію на основі певних умов.
1. Перейдіть на вкладку «Головна», клацніть Правила > Керування правилами та сповіщеннями.
2 В Правила та попередження у діалоговому вікні натисніть Нове правило кнопку, щоб створити правило.
Порада: Якщо ви додали кілька облікових записів електронної пошти до свого Outlook, вкажіть обліковий запис у Застосувати зміни до цієї папки розкривний список, у якому потрібно застосувати правило. В іншому випадку він буде застосовано до вхідної скриньки поточного вибраного облікового запису електронної пошти.
3. У першій Майстер правил діалогове вікно, виберіть Застосувати правило щодо отриманих повідомлень в крок 1 поле, а потім натисніть кнопку Далі.
4 У другому Майстер правил у діалоговому вікні потрібно:
5. У третьому Майстер правил діалогове вікно, вам потрібно налаштувати наступним чином.
Порада: Якщо "запустити скрипт” відсутня у вашому Майстер правил, ви можете відобразити його, дотримуючись методу, згаданого в цій статті: відновити відсутній пункт Run A Script у правилі Outlook.
6. Потім інший Майстер правил з'являється запит на виключення. Ви можете вибрати винятки, якщо це необхідно, інакше натисніть кнопку МАЙБУТНІ кнопка без вибору.
7. В останній Майстер правил, потрібно вказати ім’я правила, а потім натиснути кнопку обробка кнопки.
8. Потім він повертається до Правила та попередження діалоговому вікні, ви можете побачити створене вами правило, перелічене всередині, натисніть кнопку OK , щоб закінчити всі налаштування.
Відтепер, коли буде отримано електронний лист від вказаної особи, вкладені файли будуть роздруковані автоматично.
Статті по темі
Друкувати лише вкладення з одного електронного листа або вибраних листів у Outlook
У Outlook ви можете роздрукувати електронні листи, але ви надрукували вкладення лише з однієї електронної пошти чи з вибраних листів у Outlook? У цій статті представлені прийоми вирішення цієї роботи.
Друкувати лише заголовок повідомлення електронної пошти в Outlook
Під час друку повідомлення електронної пошти в Outlook буде надруковано як заголовок, так і тіло повідомлення в електронному листі. Однак у деяких особливих випадках вам може знадобитися просто роздрукувати заголовок повідомлення з темою, відправником, одержувачами тощо. У цій статті буде представлено два рішення, як це зробити.
Роздрукуйте календар у визначеному/користувацькому діапазоні дат у Outlook
Зазвичай під час друку календаря в режимі перегляду місяця в Outlook він автоматично вибирає місяць, що містить поточну вибрану дату. Але вам може знадобитися надрукувати календар у межах спеціального діапазону дат, наприклад 3 місяці, півроку тощо. Ця стаття представить рішення для вас.
Роздрукуйте контакт із зображенням у Outlook
Зазвичай зображення контакту не роздруковується під час друку контакту в Outlook. Але іноді буде більш вражаючим надрукувати контакт із його зображенням. Ця стаття запропонує кілька обхідних шляхів, щоб це зробити.
Роздрукуйте вибране повідомлення електронної пошти в Outlook
Якщо ви отримали повідомлення електронної пошти та виявили, що є вибір вмісту електронної пошти, потрібно роздрукувати замість того, щоб друкувати ціле повідомлення, що б ви зробили? Насправді Outlook може допомогти вам досягти цієї операції за допомогою Інтернет-браузерів, таких як Firefox та Internet Explorer. Тут я візьму, наприклад, Інтернет-браузери. Будь ласка, перегляньте наступні підручники.
Найкращі інструменти продуктивності офісу
Kutools для Outlook - Понад 100 потужних функцій, які покращать ваш Outlook
???? Автоматизація електронної пошти: Поза офісом (доступно для POP та IMAP) / Розклад надсилання електронних листів / Автоматична копія/прихована копія за правилами під час надсилання електронної пошти / Автоматичне пересилання (розширені правила) / Автоматично додавати привітання / Автоматично розділяйте електронні листи кількох одержувачів на окремі повідомлення ...
📨 Управління електронною поштою: Легко відкликайте електронні листи / Блокуйте шахрайські електронні листи за темами та іншими / Видалити повторювані електронні листи / розширений пошук / Консолідація папок ...
📁 Вкладення Pro: Пакетне збереження / Пакетне від'єднання / Пакетний компрес / Автозавантаження / Автоматичне від'єднання / Автокомпресія ...
???? Магія інтерфейсу: 😊Більше красивих і класних смайликів / Підвищте продуктивність Outlook за допомогою вкладок / Згорніть Outlook замість того, щоб закривати ...
👍 Дива в один клік: Відповісти всім із вхідними вкладеннями / Антифішингові електронні листи / 🕘Показувати часовий пояс відправника ...
👩🏼🤝👩🏻 Контакти та календар: Пакетне додавання контактів із вибраних електронних листів / Розділіть групу контактів на окремі групи / Видаліть нагадування про день народження ...
більше Особливості 100 Чекайте на ваше дослідження! Натисніть тут, щоб дізнатися більше.