将.msg格式的电子邮件信息(包括Subject,Sender,CC,Receiver,SentDate等)格式化为excel单元格

时间:2013-04-17 10:05:17

标签: excel email excel-vba outlook outlook-vba vba

我是 VBA 的新手。如果有人能为我的任务提供Excel或Outlook VBA脚本,我将不胜感激。

任务相对简单。我在一个文件夹中有超过4000个.msg格式文件(outlook电子邮件)。我想提取某些电子邮件信息(主题,发件人,CC,接收者,SentDate)并将这些信息导入excel单元格,例如:

Subject  Sender   CC     Receiver    SentTime   SentDate

Re:..     Mike   Jane    Tom     12:00:00    23 Jan 2013

我能想到的唯一方法就是逐个打开这些 .msg文件,然后将这些信息复制并粘贴到excel中。显然,鉴于文件数量巨大,这是不现实的。

我在堆栈流上看到了一些相关的VBA脚本,但不完全是我想要的。

2 个答案:

答案 0 :(得分:2)

您可以使用Outlook对象模型及其Namespace.OpenSharedItem方法,也可以使用Redemption及其RDOSession.GetMessageFromMsgFile方法:

set Session = CreateObject("Redemption.RDOSession")
set Msg = Session.GetMessageFromMsgFile("c:\temp\temp.msg")
MsgBox Msg.Subject

答案 1 :(得分:0)

看起来有一些开源程序可以读取.MSG文件,而不仅仅是Outlook:

选择一条消息并尝试将您想要的字段导出为更好的格式(如CSV),一旦有了这些消息,就可以很容易地将其应用于使用任何脚本语言批量生成的所有消息