Cách tự động ghi lại từng email Outlook được in trong sổ làm việc Excel

Chia sẻ ngay bây giờ:

Một số người dùng hy vọng tự động lưu nhật ký email đã in trong Outlook của họ. Tuy nhiên, không có một tính năng trực tiếp như vậy có sẵn. Do đó, trong bài viết này, chúng tôi sẽ giới thiệu một cách để tự động ghi lại từng email được in trong một sổ làm việc Excel cụ thể.

Vì một số lý do, bạn có thể cần ghi lại thông tin của email khi in. Rõ ràng, Outlook không cung cấp tính năng gốc hỗ trợ điều này. Vì vậy, nói chung, bạn phải hoàn thành nhiệm vụ này theo cách thủ công. Tuy nhiên, với sự trợ giúp của mã VBA, bạn vẫn có thể để Outlook của mình thực hiện nhiệm vụ này một cách dễ dàng. Bây giờ, ở đây chúng tôi sẽ khám phá một đoạn mã VBA như vậy và các bước chi tiết cho bạn.

Tự động ghi lại từng email được in trong sổ làm việc Excel

  1. Đối với nhưtart, khởi chạy ứng dụng Outlook.
  2. Sau đó, truy cập trình chỉnh sửa VBA bằng cách nhấp vào nút “Visual Basic” trên tab “Nhà phát triển”.
  3. Tiếp theo, đặt mã VBA sau vào một mô-đun không sử dụng.
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

Mã VBA - Tự động ghi lại từng email được in trong sổ làm việc Excel

  1. Sau đó, thoát khỏi trình soạn thảo VBA.
  2. Sau đó, theo “Bước tùy chọn” trong post "Cách chạy mã VBA trong Outlook của bạn“, hãy thêm macro này vào dải băng hoặc Thanh công cụ truy nhập nhanh.Thêm nút Macro vào Ribbon
  3. Kể từ đó, mỗi khi bạn muốn in email, hãy nhớ sử dụng nút macro mới được thêm thay vì nút “In” tiêu chuẩn.In Email
  4. Bằng cách này, Outlook sẽ tự động ghi thư đã in vào bảng tính Excel được xác định trước.Nhật ký trong Excel

Giữ cho tệp Outlook có thể truy cập được

Đôi khi, sau khi Outlook gặp sự cố, bạn có thể nhận được thông báo lỗi rằng tệp PST không thể truy cập được. Lúc đó bạn hãy bình tĩnh lại rồi tận dụng công cụ sửa hộp thư đến để sửa chữa Outlook. Tuy nhiên, tiện ích sẵn có không linh hoạt. Nó cũng có thể thất bại. Do đó, nếu tệp PST của bạn vẫn không khả dụng sau khi sửa Scanpst, thì giải pháp cuối cùng của bạn là một công cụ bên ngoài hiệu quả và đáng tin cậy hơn, chẳng hạn như DataNumen Outlook Repair.

Giới thiệu tác giả:

Shirley Zhang là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm phục hồi mdf và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm

Chia sẻ ngay bây giờ:

Được đóng lại.