2017-09-14 98 views
-1

我目前正在努力解決以下問題:如何從excel中的.msg文件中提取數據?

我試圖改進一些工作過程,其中涉及組織大量的項目電子郵件(.msg),存儲在一個文件夾中。文件需要從'Message.msg'重命名爲'DateSent-from Sender-Message.msg'。

現在重命名很容易處理excel宏,但我真的很努力從.msg獲取所需的數據。

有什麼辦法讓excel從.msg文件中讀取一些信息?我到目前爲止所嘗試的一切都失敗了我對發件人和發送日期感興趣。

非常感謝您的任何建議!

+0

打開它作爲一個文本流,發送方和發送日期應該是從原始文本的可讀性。 – CLR

+0

@clr,我剛剛使用文本編輯器打開了保存的outlook msg文件。該文件是二進制文件。我沒有找到任何明文。 – jsotola

+0

@jsotola - 有多奇怪。這種存儲方式一定有不同的方式,而我看到的大部分郵件都是亂碼,發件人和日期等都清晰可見。無論如何,我看到你的答案可以解決這個問題,榮譽! – CLR

回答

1

這裏是一些出發碼

Option Explicit 

Sub getMsgData() 

    ' add reference to microsoft outlook object library 

    Dim olApp As Outlook.Application 
    Set olApp = CreateObject("Outlook.Application") 

    Dim mailDoc As Outlook.MailItem 
    Dim i As Long 
    i = 1 

    Dim nam As Variant 
    For Each nam In Array("test.msg", "test2.msg") 
     Set mailDoc = olApp.Session.OpenSharedItem(ActiveWorkbook.Path & "\" & nam) 
     Sheets("sheet1").Range("a1").Offset(i) = mailDoc.SentOn 
     Sheets("sheet1").Range("a1").Offset(i, 1) = mailDoc.Sender 
     mailDoc.Close False 
     i = i + 1 
    Next nam 

    olApp.Quit 

    Set mailDoc = Nothing 
    Set olApp = Nothing 

End Sub 
相關問題