FileSystemObjectのDrivesプロパティ
FileSystemObjectのDrivesプロパティは、パソコンの全てのドライブの情報をDrivesオブジェクトで返します。
取得したDrivesオブジェクトはDriveクラスオブジェクトの配列になっており、Drivesオブジェクトから1つずつDriveオブジェクトを取得し、そのDriveオブジェクトからドライブ名(C:など)や容量などの情報が参照できます。
ちなみに、PowerShellで「Get-PSDrive -PSProvider FileSystem」と入力してEnterキーを押すと、Drivesプロパティと同様の結果が一覧表示されます。なお、「Get-PSDrive」とだけ入力した場合はドライブ以外の一部のレジストリなどの情報も一覧表示されます。
FileSystemObjectの他のメソッドやプロパティは「FileSystemObjectとTextStreamのメソッド・プロパティ一覧」をご参照ください。
構文
Property Drives As Drives
戻り値 | 全ドライブの情報をDrivesオブジェクトで返します。 |
Drivesオブジェクトの各プロパティは以下になります。ドライブによっては参照できないプロパティがあります。
AvailableSpace | 使用可能なディスク容量をバイト単位で返します。FreeSpaceプロパティの値と同じになります。 | |||||||||||||||||||||
DriveLetter | ドライブ文字を返します。Cドライブであれば”C”が取得できます。 | |||||||||||||||||||||
DriveType | ドライブの種類をDriveTypeConst定数で返します。
|
|||||||||||||||||||||
FileSystem | ファイルの種類を文字列で返します。”NTFS”などです。 | |||||||||||||||||||||
FreeSpace | 使用可能なディスク容量をバイト単位で返します。AvailableSpaceプロパティと同じ値になります。 | |||||||||||||||||||||
IsReady | ドライブが利用できるかをTrue(利用可能)かFalse(利用不可)で返します。CD-ROMのようにドライブとメディアが分かれている場合にメディアが入っているかどうかの判定ができます。 | |||||||||||||||||||||
Path | ドライブのパスを取得します。Cドライブであれば「C:」の文字列が返します。 | |||||||||||||||||||||
RootFolder | 対象のドライブのルートフォルダをFolderオブジェクトで返します。 | |||||||||||||||||||||
SerialNumber | ドライブのシリアルナンバーを返します。CD-ROMなどの可搬性メディアの場合はメディアのシリアルナンバーが返されます。 | |||||||||||||||||||||
ShareName | ネットワークドライブの場合のみ、そのネットワーク接続先のパスが返されます。 | |||||||||||||||||||||
TotalSize | 対象のドライブの総容量をバイトで返します。 | |||||||||||||||||||||
VolumeName | ドライブのボリューム名を取得または設定します。 |
事前設定
以下のサンプルコードでは参照設定でFileSystemObjectクラスを利用できるようにしています。
FileSystemObjectクラスを利用するには、事前にVBA画面→ツールメニュー→参照設定、を選択し、参照設定ダイアログで「Microsoft Scripting Runtime」にチェックを付けます。
詳細は「VBAでのFileSystemObjectとTextStreamの使い方」の事前設定をご参照ください。
サンプルコード
ドライブのパスを出力するサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub FileSystemObjectDrives() Dim fso As New FileSystemObject '// FileSystemObjectクラス Dim drvs As Drives '// Drivesクラス Dim drv As Drive '// Driveクラス '// 全てのドライブ情報を取得 Set drvs = fso.Drives '// ドライブ数を出力 Debug.Print "ドライブ数:" & drvs.Count '// 全ドライブをループ For Each drv In drvs '// 出力 Debug.Print drv.Path & " " & drv.DriveType Next End Sub |
実行結果(PCによって結果は異なります)
ドライブ数:4
C: 2
D: 4
U: 3
V: 3