フォルダのサイズをVBAで取得したい
業務を行っていくうえで、フォルダのサイズを確認するということが多々発生します。主に部署で使っている共有ハードディスクの空き容量が不安になってきたときなどでしょうか。不要なフォルダは削除またはDVDなどに退避し、何とかやりくりを行っていく。そのために手動でちまちまとフォルダの容量を確認するのは、非常に面倒くさい。マクロを使用することで、自動でフォルダのサイズを取得できます。指定のフォルダのサイズを取得する関数 サンプルコード
Private Sub write_file_size(sPath As String, lRow As Long) 'サイズの記入を行う関数 '引数:処理対象のファイル名 Dim fso As Object Dim wbMain As Workbook Dim wsMain As Worksheet Dim lSize As Long Dim lSizeCal As Long Set wbMain = Workbooks(ThisWorkbook.Name) Set wsMain = wbMain.Worksheets("存在チェック") Set fso = CreateObject("Scripting.FileSystemObject") lSize = fso.GETFolder(sPath).Size lSizeCal = lSize / 1024 If lSizeCal > 1024 Then wsMain.Cells(lRow, 6) = Round(lSize / 1048576, 1) & "MB" Else wsMain.Cells(lRow, 6) = Round(lSize / 1024, 1) & "KB" End If Set fso = Nothing End Subなお、下記のサンプルコードは指定したパスのフォルダサイズを取得するものです。
こちらの指定のパス以下のサブフォルダパスを取得するような関数と組み合わせて使うと良いと思います。
指定のパス以下のサブフォルダ名を取得する関数 サンプルコード
Public Sub main(sPath As String) Dim buf As String, msg As String Dim wb As Workbook Dim ws As Worksheet Dim i As Integer Set wb = Workbooks(sWb) Set ws = wb.Worksheets("Sheet1") i = 3 buf = Dir("sPath\*.*", vbDirectory) Do While buf <> "" If InStr(buf, ".") = 0 Then ws.Cells(i, 2) = buf i = i + 1 End If buf = Dir() Loop End Sub
この記事はお役に立てたでしょうか?
もし参考になると思っていただけたら、こちらのボタンから共有をお願いします。
ツイート |
|