VBAでフォルダのプロパティのサイズ、ファイル数、フォルダ数を取得するコードを書きました。
フォルダを右クリックして、プロパティを表示するときと似たような内容を取得することができます。
フォルダサイズは、FileSystemObjectで取得できますが、サブフォルダを含めたフォルダ数、ファイル数は再帰的に取得する必要があります。
スポンサーリンク
以下、VBAでフォルダのプロパティのサイズ、ファイル数、フォルダ数を取得するコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
Sub フォルダ情報取得() Dim dblSize As Double Dim sDir As String sDir = "C:\Temp" dblSize = フォルダサイズ取得(sDir) Range("A1").Value = dblSize Range("B1").Value = "バイト" Range("A2").Value = Int(dblSize / 1024) Range("B2").Value = "KB" Range("A3").NumberFormatLocal = "0.00" Range("A3").Value = dblSize / 1024 / 1024 Range("B3").Value = "MB" Range("A4").NumberFormatLocal = "0.00000" Range("A4").Value = dblSize / 1024 / 1024 / 1024 Range("B4").Value = "GB" Dim lFolderCount As Long Dim lFileCount As Long フォルダ数ファイル数取得 sDir, lFolderCount, lFileCount Range("A5").Value = lFolderCount Range("B5").Value = "フォルダ数" Range("A6").Value = lFileCount Range("B6").Value = "ファイル数" End Sub Private Function フォルダサイズ取得(sDir As String) As Double Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") フォルダサイズ取得 = fso.GetFolder(sDir).Size End Function Private Sub フォルダ数ファイル数取得(strTargetDir As String, ByRef lFolderCount As Long, ByRef lFileCount As Long) Dim fso As Object Dim folder As Object Dim subfolder As Object Dim file As Object Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(strTargetDir) lFolderCount = lFolderCount + folder.subFolders.Count lFileCount = lFileCount + folder.Files.Count For Each subfolder In folder.subFolders '再帰的にチェック フォルダ数ファイル数取得 subfolder.Path, lFolderCount, lFileCount Next subfolder End Sub |