美好的一天!我是 VBA 新手。我正在尝试借助一些在线可用的 VBA 脚本自动将电子邮件从 Outlook 导出到 Excel。我最终得到了 80% 的结果。请查看我使用过的代码。其中,我还需要添加一些代码来导出邮件正文。请有人指导我。
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
strExcelFile = "d:\LocalData\Z018439\Desktop\MY\NX-AMO\Mail Export\export.xlsx"
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")
nNextEmptyRow = objExcelWorkSheet.Range("B" & objExcelWorkSheet.Rows.Count).End(xlUp).Row + 1
strColumnB = objMail.SenderName
strColumnC = objMail.SenderEmailAddress
strColumnD = objMail.Subject
strColumnE = objMail.ReceivedTime
If StrComp(strColumnB, "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c5b6a0b7b3aca6a09aa8a4aba4a2a0b7f285a8a4aca9ebabacb6b6a4abeba6aaebafb5" rel="noreferrer noopener nofollow">[email protected]</a>", vbTextCompare) = 0 Then
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
objExcelWorkSheet.Columns("A:E").AutoFit
objExcelWorkBook.Close SaveChanges:=True
End If
objExcelApp.Quit
Set objExcelApp = Nothing
Set objExcelWorkBook = Nothing
Set objExcelWorkSheet = Nothing
Set objMail = Nothing
End Sub
最佳答案
body 就像你想象的那样。
strColumnF = objMail.Body
您还拥有 objMail.HTMLBody
(它将显示带有 html 标记的正文)、CreationTime
、FlagStatus
、Recipients
(收件人的集合,需要转换为字符串)等等。您可以通过查看 View >本地窗口来查看 Debug模式下任何表达式的所有属性的完整列表。
关于excel - 将 Outlook 电子邮件导出到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018055/