Як групово друкувати всі вкладення в декількох електронних листах за допомогою Outlook VBA

Поділитися зараз:

Якщо ви хочете роздрукувати всі вкладення кількома вибраними електронними листами, ви можете скористатися методом, представленим у цій статті. Він використовує шматок коду VBA для його швидкого досягнення.

Як бачите, коли ви вибираєте одне вкладення, на стрічці „Вкладені файли” доступна функція „Швидкий друк”. Однак, коли ви вибираєте більше одного вкладення, кнопка “Швидкий друк” буде відключена, не кажучи вже про друк усіх вкладень у багатьох вибраних електронних листах. Отже, за умови, що ви хочете пакетно надрукувати всі вкладення кількома листами за один раз, вам доведеться шукати інші способи, наприклад, будь-які сторонні інструменти або VBA. Орієнтуючись на цю потребу, тут ми розкриємо вам фрагмент коду VBA, який допоможе вам отримати його одним клацанням миші.

Пакетний друк усіх вкладень у кількох електронних листах за допомогою Outlook VBA

Пакетний друк усіх вкладень у декількох електронних листах

  1. З самого початку запустіть програму Outlook.
  2. Потім у головному вікні натисніть клавіші “Alt + F11” для доступу до редактора VBA.
  3. У наступному вікні “Microsoft Visual Basic for Applications” відкрийте порожній модуль.
  4. Далі скопіюйте наступні коди VBA в такий модуль.
Sub BatchPrintAllAttachmentsinMultipleEmails()
    Dim objFileSystem As Object
    Dim strTempFolder As String
    Dim objSelection As Outlook.Selection
    Dim objItem As Object
    Dim objMail As Outlook.MailItem
    Dim objAttachments As Outlook.attachments
    Dim objAttachment As Outlook.Attachment
    Dim objShell As Object
    Dim objTempFolder As Object
    Dim objTempFolderItem As Object
    Dim strFilePath As String
 
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    strTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Attachments " & Format(Now, "YYYY-MM-DD_hh-mm-ss")
    'Create a new temp folder
    MkDir (strTempFolder)
 
    Set objSelection = Outlook.Application.ActiveExplorer.Selection
 
    For Each objItem In objSelection
        If TypeOf objItem Is MailItem Then
           Set objMail = objItem
           Set objAttachments = objMail.attachments
 
           'Save all the attachments in the temp folder
           For Each objAttachment In objAttachments
               strFilePath = strTempFolder & "\" & objAttachment.FileName
               objAttachment.SaveAsFile (strFilePath)
 
               'Print all the files in the temp folder
               Set objShell = CreateObject("Shell.Application")
               Set objTempFolder = objShell.NameSpace(0)
               Set objTempFolderItem = objTempFolder.ParseName(strFilePath)
               objTempFolderItem.InvokeVerbEx ("print")
           Next objAttachment
        End If
    Next
End Sub

Код VBA - Друк усіх вкладень у кількох поштових повідомленнях

  1. Згодом ви можете додати новий макрос на панель швидкого доступу.
  2. Після цього вам слід встановити низький рівень захисту макросів Outlook.
  3. Зрештою ви можете спробувати.
  • По-перше, у списку розсилки виберіть кілька листів, вкладення яких потрібно надрукувати.
  • Потім натисніть на нову кнопку макросу на панелі швидкого доступу.
  • Далі будуть роздруковані всі вкладення у вибраних електронних листах.

Остерігайтеся вірусів, прихованих у макросах

Якщо ви налаштували рівень захисту макросів Outlook на низький, вам доведеться витратити багато зусиль, блокуючи потенційні віруси в шкідливих макросах. Це тому, що віруси можуть знищити ваші дані Outlook одним рухом. Як тільки дані Outlook будуть пошкоджені, ви спробуєте зробити все можливе відновити Outlook - - дані неодмінно, такі як повернення до такого потужного інструменту, як DataNumen Outlook Repair.

Вступ автора:

Ширлі Чжан - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі корумпований sql та перспективні програмні продукти для ремонту. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.