wrote :: 2005.01.18

トップページ > Excel > VBA > FileSystemObject > Driveオブジェクト


Driveオブジェクト

DriveオブジェクトはハードディスクやCD-ROMドライブなどのドライブを表します。Driveオブジェクトの集合はDrivesコレクションです。DrivesコレクションのプロパティはCountプロパティとItemプロパティだけで、メソッドはありません。Driveオブジェクトには次のプロパティとメソッドが用意されています。

プロパティ
AvailableSpace使用できるディスク容量を返します
DriveLetterドライブ名を返します
DriveTypeドライブの種類を示す値を返します
FileSystemドライブが使用しているファイルシステムの種類を返します
FreeSpace使用できるディスク容量を返します
IsReadyドライブの準備ができているかどうかを返します
Pathドライブのパスを返します
RootFOlderドライブのルートフォルダを返します
SerialNumberディスクのシリアル値を返します
ShareNameドライブのネットワーク共有名を返します
TotalSizeドライブの総容量を返します
VolumeNameドライブのボリューム名を設定します
メソッド
ありません



・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ネットワークドライブ
4CD-ROMドライブ
5RAMディスク

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オブジェクト]