使用VBA获取文件的所有属性

时间:2018-07-03 20:41:26

标签: excel-vba extended-properties vba excel

我正在尝试读写文件(主要是doc和xls)中的属性列表,例如标题,作者,标签或注释。我可以很容易地获得基本属性,而不能获得这些扩展属性。

GetDetailsOf 曾经可以使用(https://technet.microsoft.com/en-us/library/ee176615.aspx?f=255&MSPPError=-2147217396),但是现在它停止在索引 6 上了。

根据文档(https://docs.microsoft.com/en-us/windows/desktop/shell/shellfolderitem-extendedproperty), .ExtendedProperty 应该能够读取属性,但不会返回大多数属性。例如,作者(甚至在上面的链接中被引用为示例)(有两种指定属性的方法。第一种方法是分配属性的众所周知的名称,例如“作者” ),则不返回任何内容。

还有其他方法吗?

单个文件的测试脚本:

Sub PrintDocumentProperties()

    With CreateObject("Shell.Application").Namespace("D:\VBA")
        MsgBox .GetDetailsOf(.Items.Item("derp.xlsm"), 5) & vbNewLine & _
         .Items.Item("derp.xlsm").ExtendedProperty("Date modified") & vbNewLine & _
         .Items.Item("derp.xlsm").ExtendedProperty("Type") & vbNewLine & _
         .Items.Item("derp.xlsm").ExtendedProperty("Size") & vbNewLine & _
         .Items.Item("derp.xlsm").ExtendedProperty("Author") & vbNewLine & _
         .Items.Item("derp.xlsm").ExtendedProperty("Authors")
    End With

End Sub

enter image description here

0 个答案:

没有答案