我的目标是向用户展示一种从excel的VBA用户窗体中预览Sharepoint上存储的文件的详细信息的方法。到目前为止,我已经可以使用Scripting.FileSystemObject
来检索文件列表。
我知道我可以使用ContentTypeProperties
来访问所需的信息,但这似乎取决于打开每个文件。
我还有其他方法可以使用,而无需打开每个文件来访问元数据吗?
我不是Sharepoint的狂热用户,所以请原谅我使用术语。
根据我自己的理解,我正在走向未知的领域,因此对您的帮助或进一步阅读的指导将不胜感激。
谢谢!
edit:现有代码仅依靠Scripting.FileSystemObject
来检索文件名。
Private Sub UserForm_Activate()
Dim spURL As String
Dim oFile As Object, oFSO As Object, oFldr As Object, oFiles As Object, oDSO As Object
Dim ext As String, title As String
spURL = **sharepoint url**
Set oFSO = CreateObject("Scripting.Filesystemobject")
Set oFldr = oFSO.getfolder(spURL)
Set oFiles = oFldr.Files
For Each oFile In oFiles
If InStr(1, ext, "xls") Then
Me.cboFiles.AddItem oFile.Name
End If
Next
Set oFSO = Nothing
Set oFldr = Nothing
Set oFiles = Nothing
End Sub
现在可以说我想获取文档类型,当将文件检入共享点时,这是文档属性中的自定义字段,我知道我可以执行以下操作:
set wb = workbooks.open(spURL & oFile.Name)
debug.print wb.ContentTypeProperties.Item(x).Value
(其中Item(x)相对于我需要从中获取信息的字段) 但是,我要确定的是是否存在另一种不需要打开工作簿的方法。
答案 0 :(得分:0)
深入研究问题,我在http://www.cpearson.com/excel/docprop.aspx上发现了以下内容: “ VBA不直接支持从关闭的文件中读取属性。但是,Microsoft已免费提供了一个名为DSO OLE文档属性读取器2.1的DLL文件,或简称为DSOFile.dll。使用此DLL,您可以读取BuiltIn和Custom OLE文件(例如XLS工作簿)中的属性。”