如何使用Outlook VBA將傳入電子郵件的信息自動導出到Excel文件

立即分享:

許多用戶希望Outlook可以將傳入電子郵件的主要信息自動導出到Excel文件。 本文將研究此要求,並通過Outlook VBA介紹一種快速方法。

有時,由於某些原因(例如郵件統計信息),您可能經常需要將電子郵件導出到Excel文件。 通常,對於現有的已接收電子郵件,您可以簡單地利用“導入和導出”功能一次性將其導出到Excel。 但是,也許您甚至希望Outlook可以在收到電子郵件後立即將它們自動導出到Excel。 毫無疑問,Outlook中沒有這樣的本機功能。 因此,您需要採用其他方法,例如第三方加載項或Outlook VBA。 在這裡,我們將教您如何使其與Outlook VBA自動化。 繼續閱讀以獲取步驟和相應的代碼。

自動將收到的電子郵件信息導出到Excel文件

  1. 首先,您應該創建一個Excel文件。
  • 打開一個新的Excel文件。
  • 然後,您應該輸入“否”。 如下圖所示,在單元格A1中,在單元格B1中為“發件人名稱”,在單元格C1中為“發件人電子郵件地址”,在單元格D1中為“電子郵件主題”,在單元格E1中為“接收時間”,如下圖。創建一個Excel文件
  • 最後,將其保存在所需的名稱和文件夾中。
  1. 之後,您應該啟動Outlook。
  2. 然後按“ Alt + F11”鍵按鈕,這將帶您進入VBA編輯器。
  3. 接下來,在彈出窗口中,您應該雙擊左側的“ ThisOutlookSession”。
  4. 隨後,在“ ThisOutlookSession”項目窗口中,您需要將以下VBA代碼複製並粘貼到其中。
Public WithEvents objMails As Outlook.Items

Private Sub Application_Startup()
    Set objMails = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub objMails_ItemAdd(ByVal Item As Object)
    Dim objMail As Outlook.MailItem
    Dim strExcelFile As String
    Dim objExcelApp As Excel.Application
    Dim objExcelWorkBook As Excel.Workbook
    Dim objExcelWorkSheet As Excel.Worksheet
    Dim nNextEmptyRow As Integer
    Dim strColumnB As String
    Dim strColumnC As String
    Dim strColumnD As String
    Dim strColumnE As String

    If Item.Class = olMail Then
       Set objMail = Item
    End If
 
    'Specify the Excel file which you want to auto export the email list
    'You can change it as per your case
    strExcelFile = "E:\Email\Email Statistics.xlsx"
 
    'Get Access to the Excel file
    On Error Resume Next
    Set objExcelApp = GetObject(, "Excel.Application")
    If Error <> 0 Then
       Set objExcelApp = CreateObject("Excel.Application")
    End If
    Set objExcelWorkBook = objExcelApp.Workbooks.Open(strExcelFile)
    Set objExcelWorkSheet = objExcelWorkBook.Sheets("Sheet1")
 
    'Get the next empty row in the Excel worksheet
    nNextEmptyRow = objExcelWorkSheet.Range("B" & objExcelWorkSheet.Rows.Count).End(xlUp).Row + 1
 
    'Specify the corresponding values in the different columns
    strColumnB = objMail.SenderName
    strColumnC = objMail.SenderEmailAddress
    strColumnD = objMail.Subject
    strColumnE = objMail.ReceivedTime
 
    'Add the vaules into the columns
    objExcelWorkSheet.Range("A" & nNextEmptyRow) = nNextEmptyRow - 1
    objExcelWorkSheet.Range("B" & nNextEmptyRow) = strColumnB
    objExcelWorkSheet.Range("C" & nNextEmptyRow) = strColumnC
    objExcelWorkSheet.Range("D" & nNextEmptyRow) = strColumnD
    objExcelWorkSheet.Range("E" & nNextEmptyRow) = strColumnE
 
    'Fit the columns from A to E
    objExcelWorkSheet.Columns("A:E").AutoFit
 
    'Save the changes and close the Excel file
    objExcelWorkBook.Close SaveChanges:=True
End Sub

VBA代碼-自動將傳入電子郵件的信息導出到Excel文件

  1. 稍後,您應該簽署此代碼。
  2. 隨後,restart Outlook激活新的VBA項目。
  3. 最終,從現在開始,所有傳入的電子郵件一進入您的“收件箱”文件夾,就會自動導出到預設的Excel文件。 excel文件將如下圖所示:包含傳入電子郵件信息的Excel文件

避免痛苦的PST數據損壞

由於Outlook的各種功能,它贏得了很多讚譽。 但是,這並不意味著萬無一失。 它仍然可以隨時受到損害。 例如,如果您經常不正確地關閉Outlook,則很可能將PST數據置於危險之中。 在這種情況下,如果您想 維修PST 數據,您必須求助於經驗豐富的工具,例如 DataNumen Outlook Repair.

作者簡介:

Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 恢復mdf 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。