「vba ドライブ一覧」
「vba ドライブ名一覧」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあります。
ドライブ名の一覧を作成する、VBA(Visual Basic for Applications)のコードを探している方による検索です。
どのアプリケーションでの話かわかりませんが、FileSystemObjectを利用した、Excelマクロをご紹介しておきます。
ドライブ一覧を作成するサンプルマクロ
以下のマクロを実行すると、アクティブなブックの先頭にワークシートが挿入され、ドライブレターと容量の一覧が作成されます。
Dim fso As Object ' Scripting.FileSystemObject
Dim drv As Object ' Scripting.Drive
Dim n As Long
Sheets.Add Before:=Sheets(1)
Cells(1, "A").Value = "ドライブレター"
Cells(1, "B").Value = "容量"
Set fso = CreateObject("Scripting.FileSystemObject")
n = 2
For Each drv In fso.Drives
Cells(n, "A").Value = drv.DriveLetter
Cells(n, "B").Value = drv.TotalSize
n = n + 1
Next drv
Set fso = Nothing
Rows(1).HorizontalAlignment = xlHAlignCenter
Columns("B:B").NumberFormatLocal = "#,##0"
Columns("A:B").AutoFit
サンプルマクロの解説
アクティブブックの先頭にワークシートを挿入して、
Sheets.Add Before:=Sheets(1)
1行目に見出しを作成しておいてから、
Cells(1, "A").Value = "ドライブレター"
Cells(1, "B").Value = "容量"
FileSystemObjectオブジェクトをCreateObjectして、
Set fso = CreateObject("Scripting.FileSystemObject")
全ドライブを表すDrivesコレクションオブジェクトに対して、
For Each~Nextループを回して、
For Each drv In fso.Drives
Scriptingライブラリの、DriveオブジェクトのDriveLetteプロパティで取得した、
ドライブレター・ドライブ文字をA列に、
Cells(n, "A").Value = drv.DriveLetter
DriveオブジェクトのTotalSizeプロパティで取得した、
各ドライブの容量をB列に書き出しています。
Cells(n, "B").Value = drv.TotalSize
ドライブレター・容量の書き出しが終わったら、各種書式設定を行っています。
Rows(1).HorizontalAlignment = xlHAlignCenter
Columns("B:B").NumberFormatLocal = "#,##0"
Columns("A:B").AutoFit
Home » FSO・FileSystemObjectの使い方 » ドライブ一覧を作成するExcelマクロ