0

Sharepoint ドキュメント ライブラリ アイテム (ファイル、フォルダー、およびサブフォルダー) を繰り返し処理し、すべてのフォルダーの内容を Excel シートに出力したい

マクロに次のコードがあります

Sub WriteFileProp(mySourcePath As String)

    Dim objMyList As ListObject
    Dim objWksheet As Worksheet
    Dim strSPServer As String
    Dim SERVER As String
    Const LISTNAME As String = "Documents"
    Const VIEWNAME As String = ""
     SERVER = mySourcePath
   ' The SharePoint server URL pointing to
   ' the SharePoint list to import into Excel.

    strSPServer = "http:" & SERVER & "/_vti_bin"
    ' Add a new worksheet to the active workbook.
    Set objWksheet = Worksheets.Add
    ' Add a list range to the newly created worksheet
    ' and populated it with the data from the SharePoint list.
    Set objMyList = objWksheet.ListObjects.Add(xlSrcExternal, _
        Array(strSPServer, LISTNAME, VIEWNAME), False, , Range("A1"))

 End Sub

そしてその機能

 Dim objFSO As Object
 Dim objFolder As Object
 Dim ObjFile As Object
 Dim SubFolder As Object
 Dim pth As String
 Dim WBn As Workbook
 Dim ObCount As Long
 Dim FileNme As String

 Application.ScreenUpdating = False

 Set objFSO = CreateObject("Scripting.FileSystemObject")

 'Get the folder object associated with the directory
 Set objFolder = objFSO.GetFolder("//S1.S2.S3Portal/Shared%20Documents/")

 Call WriteFileProp("S1.S2.S3Portal.com/")
 'Print main view

For Each SubFolder In objFolder.SubFolders
            Call WriteFileProp(SubFolder.Path)
        Next

Call WriteFileProp("S1.S2.S3Portal.com/") その後、サブフォルダーをループし、パスが提供されている ServerUrl と互換性がないまで、すべてが正常に機能します

objWksheet.ListObjects.Add(xlSrcExternal, _
        Array(strSPServer, LISTNAME, VIEWNAME), False, , Range("A1"))

つまり、最初のサブフォルダー名が Software であるとします。そのパスは次の形式になります //S1.S2.S3Portal/Shared%20Documents/Software

しかし、ListObjects.Add は、 msdnに従ってその形式のみを受け入れます

strSPServer = http://S1.S2.S3Portal

ListName = "ドキュメント"

ビュー=""

とにかく、そのドキュメントのサブフォルダーの URL を維持するためにあります。ライブラリを開き、ListObjects.Add または同様の関数を使用してそれらを Excel ワークブックに追加します。

4

1 に答える 1

0

ポストされたメソッドの代わりにリスト項目を取得するために、Soap クエリと Web サービスで GetListItems を使用しました。

于 2015-06-10T15:34:49.483 に答える