首页 文章

使用VBA在Windows资源管理器中处理outlook msg文件的项目详细信息

提问于
浏览
0

我已经从各种Web源中混合了一个VBA脚本,以将选定的Outlook 2013邮件项目保存为文件系统上的* .msg文件 . 这很好但我想在Windows资源管理器(Windows 7)中显示的项属性中添加内容 .

网络搜索引发了令人困惑的信息,因为大多数人似乎都认为我想要更改CustomProperties或BuiltinProperties但是经过很长一段时间后,看起来DSOfile dll对其他一些MS Office文件的作用就是我所需要的 .

总之,我可以选择并运行一个宏来重命名邮件项目并将其作为msg文件保存到文件系统 . 我正在寻找一种方法,使文件系统上的这些项目在Windows资源管理器中查看时显示其他信息 . 也就是说,其他列显示了默认资源管理器视图之外的一些信息 .

此信息仅在Windows资源管理器中与允许排序等相关 . 我不能涉及单独的数据库等 . 我还需要在VBA环境中执行此操作,并且无法访问Visio等 .

例如,Windows资源管理器可以显示“发件人地址”和“发件人名称”列 . 我想在VBA中为Outlook 2013 msg文件填充这些内容 .

这是可能的,如果是这样的话怎么办?

2 回答

  • 0

    此功能适用于我的目的 .

    不是最干净的选项,但足够好,因为我可以在资源管理器中对特定列上的项目进行排序 .

    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

    从Windows Vista开始,您需要使用Windows Property System为项目添加额外属性或定义新属性 . 要从MSG文件中提取属性,您需要自己解析MSG文件(其格式为documented)或使用扩展MAPI(C或Delphi)打开MSG文件(使用OpenIMsgOnIStg) . 对于VBA,您还可以使用Redemption(包装扩展MAPI以供任何编程语言使用)及其RDOSession .GetMessageFromMsgFile方法 .

相关问题