Некоторые пользователи надеются автоматически сохранять журналы распечатанных электронных писем в своем Outlook. Однако такая прямая функция недоступна. Следовательно, в этой статье мы представим способ автоматической регистрации каждого напечатанного электронного письма в определенной книге Excel.
По некоторым причинам вам может потребоваться записывать информацию электронной почты при ее печати. Очевидно, что Outlook не предоставляет встроенной функции, поддерживающей это. Таким образом, в общем случае вам придется выполнять эту задачу вручную. Тем не менее, с помощью кода VBA вы все равно можете легко позволить своему Outlook выполнить эту миссию. Теперь здесь мы раскроем вам такой фрагмент кода VBA и подробные шаги.
Автоматический журнал каждого напечатанного электронного письма в книге Excel
- Для насtarт, запустите приложение Outlook.
- Затем войдите в редактор VBA, нажав кнопку «Visual Basic» на вкладке «Разработчик».
- Затем поместите следующий код VBA в неиспользуемый модуль.
Sub RecordPrintedEmails()
Dim objMail As Outlook.MailItem
Dim objExcelApp As Excel.Application
Dim strExcelFile As String
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim nNextEmptyRow As Integer
'Get the mail
Select Case Outlook.Application.ActiveWindow.Class
Case olInspector
Set objMail = ActiveInspector.CurrentItem
Case olExplorer
Set objMail = ActiveExplorer.Selection.Item(1)
End Select
objMail.PrintOut
On Error Resume Next
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
'Change the path to the specific excel file
strExcelFile = "E:\Emails\Printed Emails.xlsx"
Set objExcelWorkbook = objExcelApp.Workbooks.Open(strExcelFile)
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
objExcelWorksheet.Activate
nNextEmptyRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
'Change the details as per your own case
With objExcelWorksheet
.Cells(nNextEmptyRow, 1) = Date
.Cells(nNextEmptyRow, 2) = objMail.Subject
.Cells(nNextEmptyRow, 3) = objMail.Sender
.Cells(nNextEmptyRow, 4) = objMail.SentOn
.Cells(nNextEmptyRow, 5) = objMail.Size
.Cells(nNextEmptyRow, 6) = objMail.Attachments.Count
.Columns("A:E").AutoFit
End With
objExcelWorkbook.Close True
objExcelApp.Quit
End Sub
- После этого выйдите из редактора VBA.
- Впоследствии, в соответствии с «Необязательным шагом» в п.ost Как запустить код VBA в Outlook", добавьте этот макрос на ленту или панель быстрого доступа.
- С тех пор каждый раз, когда вы хотите распечатать электронное письмо, не забывайте использовать недавно добавленную кнопку макроса вместо стандартной «Печать».
- Таким образом, Outlook будет автоматически регистрировать распечатанную почту на предопределенном рабочем листе Excel.
Держите файл Outlook доступным
Иногда после сбоя Outlook вы можете получить сообщение об ошибке, сообщающее о том, что файл PST недоступен. В это время вы должны успокоиться, а затем использовать инструмент восстановления папки «Входящие», чтобы исправить Outlook. Однако встроенная утилита не универсальна. Он тоже может потерпеть неудачу. Следовательно, если ваш файл PST по-прежнему недоступен после восстановления Scanpst, последним средством является более эффективный и надежный внешний инструмент, такой как DataNumen Outlook Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановление мдф и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com



