我已经从各种Web源中混合了一个VBA脚本,以将选定的Outlook 2013邮件项目保存为文件系统上的* .msg文件。这很好但我想在Windows资源管理器(Windows 7)中显示的项属性中添加内容。
网络搜索引发了令人困惑的信息,因为大多数人似乎都认为我想要更改CustomProperties或BuiltinProperties但是经过很长一段时间后,似乎DSOfile dll对其他一些MS Office文件所做的就是我需要的。< / p>
总之,我可以选择并运行一个宏来重命名邮件项并将其作为msg文件保存到文件系统中。我正在寻找一种方法,使文件系统上的这些项目在Windows资源管理器中查看时显示其他信息。也就是说,其他列显示了默认资源管理器视图之外的一些信息。
此信息仅在Windows资源管理器中与允许排序等相关。我不能涉及单独的数据库等。我还需要在VBA环境中执行此操作,并且无法访问Visio等。
例如,Windows资源管理器可以显示&#34;发件人地址&#34;和&#34;发件人姓名&#34;列。我想在VBA中为Outlook 2013 msg文件填充这些内容。
这可能吗?如果可以的话怎么办?
答案 0 :(得分:1)
此功能适用于我的目的。
不完全是最干净的选项,但足够好,因为我可以在资源管理器中对特定列上的项目进行排序。
Function setFileProps(filePath As String)
Dim objFile As Object
Set objFile = CreateObject("DSOFile.OleDocumentProperties")
objFile.Open(filePath)
' Use "Authors" column to hold Sender's Name
objFile.SummaryProperties.Author = mItem.SenderName
' Use "Comments" column to hold Sender's email address
objFile.SummaryProperties.Comments = mItem.SenderEmailAddress
objFile.save
set objFile = Nothing
End Function
mItem
是来自main sub的mailItem,在保存mailitem之后会从那里调用此函数。
然后我在Windows资源管理器中设置目标文件夹以显示“作者”和“注释”列。
也许有“更清洁”的解决方案
答案 1 :(得分:0)
从Windows Vista开始,您需要使用Windows Property System为项目添加额外属性或定义新属性。要从MSG文件中提取属性,您需要自己解析MSG文件(格式为documented)或使用扩展MAPI(C ++或Delphi)打开MSG文件(使用OpenIMsgOnIStg) 。对于VBA,您还可以使用Redemption(包装扩展MAPI以供任何编程语言使用)及其RDOSession。GetMessageFromMsgFile方法。