サブフォルダの全ファイルサイズをグラフ化する


任意のフォルダのサブフォルダに保存されている全ファイルのサイズを取得してグラフ化します。サンプルでは「C:\Tmp」フォルダを調べています。「C:\Tmp」フォルダには「Sub」「Sub2」「Work」「Work2」という4つのサブフォルダを作成し、適当なファイルを保存しました。マクロの後半はグラフを作るコードです。グラフのオプションなどはご自由に設定してください。

Sub Sample08()
    Dim FSO As Object, f As Variant, cnt As Long
    Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each f In FSO.GetFolder("C:\Tmp\").SubFolders
        cnt = cnt + 1
        Cells(cnt, 1) = FSO.GetFolder(f).Name
        Cells(cnt, 2) = FSO.GetFolder(f).Size
    Next f
    Set FSO = Nothing
    ''グラフの作成
    ActiveSheet.ChartObjects.Add Range("C1").Left, Range("C1").Top, _
                                 Range("C1:G16").Width, Range("C1:G16").Height
    With ActiveSheet.ChartObjects(1).Chart
        .ChartType = xl3DBarClustered
        .HasLegend = False
        .SetSourceData Source:=ActiveSheet.Range("A1").CurrentRegion
        .Location Where:=xlLocationAsObject, Name:=ActiveSheet.Name
        .Axes(xlCategory).ReversePlotOrder = True
    End With
    Range("A1").Activate
End Sub

参考までに、Excel 2003とExcel 2010で実行した結果です。同じコードで、Excel 2007/2010でも、エラーにならず実行できます。

【Excel 2003】

【Excel 2010】