ドライブの種類、総容量、空き容量などを取得する。
VBAでドライブの情報(ドライブ名、容量など)を取得するにはFileSystemObjectを利用して取得することができます。
各情報はDrives コレクションのプロパティから取得しています。
サンプルコードでは各ドライブのドライブ名、ドライブ種類、ファイルシステム、ボリューム名、総容量、使用容量、空き容量を取得しています。
容量はバイト単位となるのでGB(ギガバイト)で算出するようにしています。
'******************************************************************
' ドライブ情報の取得
'******************************************************************
Sub getDriveInfo()
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'エラー処理
On Error GoTo Err_getDriveInfo
'すべてのドライブ情報をループで取得
Dim oDrive As Object
For Each oDrive In oFso.Drives
Dim sDriveType As String
'ドライブの種類を取得
Select Case oDrive.DriveType
Case 0: sDriveType = "Unknown"
Case 1: sDriveType = "Removable Disk"
Case 2: sDriveType = "Hard Disk"
Case 3: sDriveType = "Network Drive"
Case 4: sDriveType = "CD-ROM Drive"
Case 5: sDriveType = "RAM Disk"
End Select
'ドライブ情報の取得
With oFso.GetDrive(oDrive.DriveLetter)
Debug.Print "-----------------------------------------------"
Debug.Print "ドライブ名 :" & oDrive.DriveLetter
Debug.Print "ドライブ種類 :" & sDriveType
'ドライブの準備ができていない場合はエラーとする
If oDrive.isready Then
Debug.Print "ファイルシステム:" & oDrive.FileSystem
Debug.Print "ボリューム名 :" & oDrive.VolumeName
'容量計算(GB単位)
Dim lTotalSize As Long
Dim lAvblSpace As Long
lTotalSize = Format(.TotalSize / 1024 / 1024 / 1024, "#,###")
lAvblSpace = Format(.AvailableSpace / 1024 / 1024 / 1024, "#,###")
Debug.Print "総容量 :" & lTotalSize & "GB"
Debug.Print "使用容量 :" & lTotalSize - lAvblSpace & "GB"
Debug.Print "空き容量 :" & lAvblSpace&; "GB"
Else
Debug.Print "(Error)ドライブの準備ができていません。"
End If
End With
Next
On Error GoTo 0
Exit Sub
'エラー処理
Err_getDriveInfo:
Debug.Print "(Error)" & Err.Number & "/" & Err.Description
Resume Next
End Sub■実行結果



