Option Explicit
 Dim objApl
 Dim objFolder
 Dim objFolderItems
 Dim numFolderSize
 Dim numFileCount
 Dim numFolderCount
 numFolderSize=0
 numFileCount=0
 numFolderCount=0
'①シェルアプリケーションオブジェクトを作成します
Set objApl = WScript.CreateObject("Shell.Application")
'②探りを入れたいフォルダのオブジェクトを作成します
'Set objFolder = objApl.NameSpace("i:\r")
Set objFolder = objApl.NameSpace("\\127.0.0.1\r")
'③フォルダオブジェクトから、入っているファイルや
' フォルダの情報を取得します
Set objFolderItems = objFolder.Items()
'フォルダの検索処理の呼び出し
Call prcFolderSize (objFolderItems)
'結果の表示。総容量、総ファイル数、総フォルダ数を表示
WScript.Echo "フォルダC:\happyの容量は、約" & numFolderSize & "バイトです"
WScript.Echo "フォルダC:\happyのファイル数は、約" & numFileCount & "個です"
WScript.Echo "フォルダC:\happyのフォルダ数は、約" & numFolderCount & "個です"
Set objFolderItems = Nothing
 Set objFolder = Nothing
 Set objApl = Nothing
'==============================================================
'= フォルダ内に含まれるファイルやフォルダを検索する
'==============================================================
Sub prcFolderSize(tmpFolderItems)
     Dim objFolderItemsB
     Dim objItem
     Dim i
    '④何個入っていたかは、Countで参照
    For i=0 To tmpFolderItems.Count-1
        '⑤ファイルやフォルダの情報を1コ取り出します
        Set objItem = tmpFolderItems.Item(i)
        '⑥取り出した物がファイルかフォルダかを判定
        If objItem.IsFolder Then
           '⑦フォルダであれば、フォルダアイテムオブジェクトを
           ' 作り、それを引数としてprcFolderSizeを再帰呼び出します
           Set objFolderItemsB = objItem.GetFolder
            Call prcFolderSize (objFolderItemsB.Items())
            numFolderCount = numFolderCount + 1
         Else
           '⑧ファイルの場合は、サイズとファイル数を集計します
           numFolderSize = numFolderSize + objItem.Size
            numFileCount = numFileCount + 1
         End If
     Next
     Set objItem = Nothing
     Set objFolderItemsB = Nothing
 End Sub
