Home » FSO・FileSystemObjectの使い方 » ドライブ一覧を作成するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

ドライブ一覧を作成するExcelマクロ

「vba ドライブ一覧」
「vba ドライブ名一覧」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあります。

ドライブ名の一覧を作成する、VBA(Visual Basic for Applications)のコードを探している方による検索です。

どのアプリケーションでの話かわかりませんが、FileSystemObjectを利用した、Excelマクロをご紹介しておきます。

[スポンサードリンク]

ドライブ一覧を作成するサンプルマクロ

以下のマクロを実行すると、アクティブなブックの先頭にワークシートが挿入され、ドライブレターと容量の一覧が作成されます。

Sub ドライブ一覧を作成する()

 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

End Sub

サンプルマクロの解説

アクティブブックの先頭にワークシートを挿入して、
  Sheets.Add Before:=Sheets(1)

1行目に見出しを作成しておいてから、
  Cells(1, "A").Value = "ドライブレター"
  Cells(1, "B").Value = "容量"

FileSystemObjectオブジェクトをCreateObjectして、
  Set fso = CreateObject("Scripting.FileSystemObject")

全ドライブを表すDrivesコレクションオブジェクトに対して、

ドライブ一覧を作成するExcelマクロ

For Each~Nextループを回して、
  For Each drv In fso.Drives

Scriptingライブラリの、DriveオブジェクトのDriveLetteプロパティで取得した、

ドライブ一覧を作成するExcelマクロ

ドライブレター・ドライブ文字をA列に、
  Cells(n, "A").Value = drv.DriveLetter

DriveオブジェクトのTotalSizeプロパティで取得した、

ドライブ一覧を作成するExcelマクロ

各ドライブの容量をB列に書き出しています。
  Cells(n, "B").Value = drv.TotalSize

ドライブレター・容量の書き出しが終わったら、各種書式設定を行っています。
  Rows(1).HorizontalAlignment = xlHAlignCenter
  Columns("B:B").NumberFormatLocal = "#,##0"
  Columns("A:B").AutoFit

[スポンサードリンク]

Home » FSO・FileSystemObjectの使い方 » ドライブ一覧を作成するExcelマクロ

「FSO・FileSystemObjectの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.