トップページ >
Excel >
VBA >
FileSystemObject >
Driveオブジェクト
Driveオブジェクト
DriveオブジェクトはハードディスクやCD-ROMドライブなどのドライブを表します。Driveオブジェクトの集合はDrivesコレクションです。DrivesコレクションのプロパティはCountプロパティとItemプロパティだけで、メソッドはありません。Driveオブジェクトには次のプロパティとメソッドが用意されています。
・AvailableSpaceプロパティ - 書式:Drive.AvailableSpace
使用できるディスク容量を返します。
AvailableSpaceプロパティの返り値は
FreeSpaceプロパティの返り値と同じです。値が異なる可能性があるのは、コンピュータシステムがディスククォータ機能をサポートしている場合だけです。
Sub test26()
Dim FSO, DriveObject, msg As String
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブの総容量を表示します
Set DriveObject = FSO.GetDrive("C")
msg = "Cドライブの総容量は、" & vbCrLf
msg = msg & Format(DriveObject.AvailableSpace, "#,##KB") & vbCrLf
msg = msg & "です"
MsgBox msg
Set FSO = Nothing
End Sub
・DriveLetterプロパティ - 書式:Drive.DriveLetter
ドライブ名を返します
ネットワークで共有しているディスクなどで、ドライブ名が設定されていない場合は""が返ります。
Sub test27()
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブのドライブ名「C」を表示します
MsgBox FSO.GetDrive("C").DriveLetter
Set FSO = Nothing
End Sub
・DriveTypeプロパティ - 書式:Drive.DriveType
ドライブの種類を示す値を返します。
値と種類の対応は次の通りです。
| 値 | 種類 |
| 0 | 不明 |
| 1 | リムーバブルディスク |
| 2 | ハードディスク |
| 3 | ネットワークドライブ |
| 4 | CD-ROMドライブ |
| 5 | RAMディスク |
Sub test28()
Dim FSO, DriveNum As Long, msg As String
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブの種類を表示します
Select Case FSO.GetDrive("C").DriveType
Case 0: msg = "不明"
Case 1: msg = "リムーバブルディスク"
Case 2: msg = "ハードディスク"
Case 3: msg = "ネットワークドライブ"
Case 4: msg = "CD-ROMドライブ"
Case 5: msg = "RAMディスク"
End Select
MsgBox "Cドライブは、" & msg & "です"
Set FSO = Nothing
End Sub
・FileSystemプロパティ - 書式:Drive.FileSystem
ドライブが使用しているファイルシステムを表す文字列を返します。
返される文字列は「FAT」「NTFS」「CDFS」のいずれかです。
Sub test29()
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブのファイルシステムを表示します
MsgBox FSO.GetDrive("C").FileSystem
Set FSO = Nothing
End Sub
・FreeSpaceプロパティ - 書式:Drive.FreeSpace
使用できるディスク容量を返します。
FreeSpaceプロパティの返り値は
AvailableSpaceプロパティの返り値と同じです。値が異なる可能性があるのは、コンピュータシステムがディスククォータ機能をサポートしている場合だけです。
Sub test30()
Dim FSO, DriveObject, msg As String
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブの総容量を表示します
Set DriveObject = FSO.GetDrive("C")
msg = "Cドライブの総容量は、" & vbCrLf
msg = msg & Format(DriveObject.FreeSpace, "#,##KB") & vbCrLf
msg = msg & "です"
MsgBox msg
Set FSO = Nothing
End Sub
・IsReadyプロパティ - 書式:Drive.IsReady
ドライブの準備ができているかどうかを返します。
FDやCD-ROMドライブなどメディアを挿入するドライブでは、メディアが挿入されているかどうかがわかります。
Sub test31()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''Aドライブ(FD)にメディアが挿入されているかどうかを表示します
If FSO.GetDrive("A").IsReady Then
MsgBox "準備完了", vbInformation
Else
MsgBox "FDを挿入してください", vbExclamation
End If
Set FSO = Nothing
End Sub
・Pathプロパティ - 書式:Drive.Path
ドライブのパスを返します。
Sub test32()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''「C:」を表示します
MsgBox FSO.GetDrive("C").Path
Set FSO = Nothing
End Sub
・RootFOlderプロパティ - 書式:Drive.RootFOlder
ドライブのルートフォルダを返します。
Sub test33()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''「C:\」を表示します
MsgBox FSO.GetDrive("C").RootFolder
Set FSO = Nothing
End Sub
・SerialNumberプロパティ - 書式:Drive.SerialNumber
ドライブで使用されているディスクのシリアルナンバーを返します。
FDドライブやCD-ROMドライブなどでは、挿入されているメディアのシリアルナンバーが返ります。
Sub test34()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブのシリアルナンバーを表示します
MsgBox FSO.GetDrive("C").SerialNumber
Set FSO = Nothing
End Sub
・ShareNameプロパティ - 書式:Drive.ShareName
ドライブのネットワーク共有名を返します。
Sub test35()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''Gドライブに割り当てているネットワークドライブの共有名を表示します
MsgBox FSO.GetDrive("G").ShareName
Set FSO = Nothing
End Sub
・TotalSizeプロパティ - 書式:Drive.TotalSize
ドライブの総容量を返します。
ディスクで使用している容量を求めるには、TotalSizeプロパティの値から
AvailableSpaceプロパティの値を引きます。
Sub test36()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブの総容量を表示します
MsgBox FSO.GetDrive("C").TotalSize
Set FSO = Nothing
End Sub
・VolumeNameプロパティ - 書式:Drive.VolumeName
ドライブのボリューム名を取得または設定します。
ドライブのボリューム名は、[マイ コンピュータ]で表示されるドライブ名です。プロパティのダイアログボックスで設定できます。
Sub test37()
Dim FSO, DriveObject
Set FSO = CreateObject("Scripting.FileSystemObject")
''Cドライブのボリューム名が空欄だったら「Office TANAKA」と設定します
If FSO.GetDrive("C").VolumeName = "" Then
FSO.GetDrive("C").VolumeName = "Office TANAKA"
End If
Set FSO = Nothing
End Sub
[FileSystemObjectオブジェクト]戻る← | →進む[Folderオブジェクト]