what should I do?
- To post as a guest, your comment is unpublished.· 3 months agoSame excel not getting updated? Any suggestions?
Normally, you can export the emails from Outlook to Excel with the Import/ Export feature. But, have you ever tried to auto export the emails to Excel file when new messages are arriving? In this article, I will talk about how to export the information of the new incoming messages automatically in Excel.
To export the new arriving emails to an Excel workbook automatically, please apply the following VBA code:
1. First, you should create a workbook with the below header information as following screenshot shown, so these information of the messages will be exported to this Excel file.
2. Then go to Outlook and hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
3. In the Microsoft Visual Basic for Applications window, double click ThisOutlookSession from the Project1(VbaProject.OTM) pane to open the mode, and then copy and paste the following code into the blank module.
VBA code: Auto export email information from Outlook to Excel file:
Public WithEvents GMailItems As Outlook.Items Private Sub Application_Startup() Set GMailItems = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items End Sub Private Sub GMailItems_ItemAdd(ByVal Item As Object) Dim xMailItem As Outlook.MailItem Dim xExcelFile As String Dim xExcelApp As Excel.Application Dim xWb As Excel.Workbook Dim xWs As Excel.Worksheet Dim xNextEmptyRow As Integer On Error Resume Next If Item.Class <> olMail Then Exit Sub Set xMailItem = Item xExcelFile = "C:\Users\DT168\Desktop\split document\kto-data.xlsx" If IsWorkBookOpen(xExcelFile) = True Then Set xExcelApp = GetObject(, "Excel.Application") Set xWb = GetObject(xExcelFile) If Not xWb Is Nothing Then xWb.Close True Else Set xExcelApp = New Excel.Application End If Set xWb = xExcelApp.Workbooks.Open(xExcelFile) Set xWs = xWb.Sheets(1) xNextEmptyRow = xWs.Range("B" & xWs.Rows.Count).End(xlUp).Row + 1 With xWs .Cells(xNextEmptyRow, 1) = xNextEmptyRow - 1 .Cells(xNextEmptyRow, 2) = xMailItem.SenderName .Cells(xNextEmptyRow, 3) = xMailItem.SenderEmailAddress .Cells(xNextEmptyRow, 4) = xMailItem.Subject .Cells(xNextEmptyRow, 5) = xMailItem.ReceivedTime End With xWs.Columns("A:E").AutoFit xWb.Save End Sub Function IsWorkBookOpen(FileName As String) Dim xFreeFile As Long, xErrNo As Long On Error Resume Next xFreeFile = FreeFile() Open FileName For Input Lock Read As #xFreeFile Close xFreeFile xErrNo = Err On Error GoTo 0 Select Case xErrNo Case 0: IsWorkBookOpen = False Case 70: IsWorkBookOpen = True Case Else: Error xErrNo End Select End Function
Note: In the above code, C:\Users\DT168\Desktop\split document\kto-data.xlsx is the Excel file path and Excel name that you want to locate the exported information, please change it to your need.
4. Still in the Microsoft Visual Basic for Applications window, click Tools > References to go to the References-Project1 dialog box, and check Microsoft Excel Object Library option from the Available References list box, see screenshot:
5. Then click OK button to close the dialog, and then save and close the code window.
6. Now, you should restart the Outlook to make this code take effect. From now on, if there are new emails arriving, they will be exported to the specific workbook automatically, see screenshot:
If you want to export the emails from Inbox, Outbox or other folders to an Excel file, Kutools for Outlook's Quick Report can help you to easily generate an XML file for reporting all items’ information in current email folder or task folder as you need.
After installing Kutools for Outlook, please do as this:
1. Select a folder that you want to export all messages information, and then click Kutools Plus > Quick Report, see screenshot:
2. Then, in the popped out Save Report window, choose a location and specify a name for this exported file, see screenshot:
3. And then, click Save button to save this file, and in the popped out box, click Yes button to open the file, see screenshot:
4. Now, you can see all the information of the emails in the selected folder has been exported into the Excel file, see screenshot: