VBA ドライブの操作や取得をするFSOのメソッドやプロパティ

スポンサーリンク

GetDrive【ゲットドライブ】メソッド

FileSystemObject【ファイルシステムオブジェクト】(以下FSO)のGetDrive【ゲットドライブ】メソッドを使用するとドライブをFSOのDriveオブジェクトとして取得できます。Drive【ドライブ】オブジェクトのプロパティを使用してさまざまな情報を取得できるようになります。

GetDrive【ゲットドライブ】メソッドの書式と設定値の説明

オブジェクト.GetDrive(DriveSpec)

  • オブジェクト
    FSOを指定します。
  • DriveSpec【ドライブスペック】
    Driveオブジェクトとして取得したいドライブ名を指定します。

※指定したドライブが存在しない場合はエラーになります。
「Microsoft Scripting Runtime」への参照設定が行われている必要があります。


DriveExists【ドライバーイグズィストゥ】メソッド

ドライブの存在を確認するにはFSOオブジェクトのDriveExists【ドライバーイグズィストゥ】メソッドを使用します。指定したドライブが存在する場合は「True」指定したドライブが存在しない場合は「False」を返します。

DriveExists【ドライバーイグズィストゥ】メソッドの書式と設定値(引数)の説明

オブジェクト.DriveExists(DriveSpec)
【戻り値】ブール型(Boolean)

  • オブジェクト
    FSOを指定します。
  • DriveSpec【ドライブスペック】
    Drive存在を確認したいドライブ名を指定します。

Driveオブジェクトの主なプロパティ一覧

  • AvailableSpace【アベイラブルスペース】プロパティ
    使用可能なディスク容量を取得します。
  • DriveLetter【ドライブレター】プロパティ
    ドライブの名前を取得します。
  • DriveType【ドライブタイプ】プロパティ
    ドライブのタイプをドライブのタイプを表すDriveTypeConst列挙型の定数を返します。

    DriveTypeConst列挙型の定数
    定数ドライブの種類
    UnknownType【アンノウンタイプ】0不明
    Removable【リムーバブル】1リムーバブルディスク
    Fixed【フェックスド】2ハードディスク
    Remote【リモート】3ネットワークドライブ
    CDRom【シーディーロム】4CD-ROM
    RamDisk【ラムディスク】5RAMディスク
  • FreeSpace【フリースペース】プロパティ
    使用可能なディスク容量を取得する容量をバイト単位で取得します。
  • IsReady【イズレディ】プロパティ
    ドライブの準備ができているかどうかを調べます。
  • RootFolder【ルートフォルダー】プロパティ
    ルートフォルダーを取得します。Folder【フォルダー】オブジェクトを返します。
  • TotalSize【トータルサイズ】プロパティ
    ドライブの総容量を取得します。容量をバイト単位で返します

ドライブの使用容量を取得するコードと解説

Sub ドライブ容量取得()
Dim myFSO As New FileSystemobject
Dim ドライブ容量 As Drive
If myFSO.DriveExists("C") Then
Set ドライブ容量 = myFSO.GetDrive("C")
Else
MsgBox "ドライブが存在しません。"
Exit Sub
End If
With ドライブ容量
MsgBox .TotalSize - .FreeSpace
End With
End Sub
2行目【Dim myFSO As New FileSystemobject】
NewキーワードでFileSystemobject【ファイルシステムオブジェクト】のインスタンスを生成して変数「myFSO」の宣言をFileSystemobject型で宣言します。Microsoft Scripting Runtimeへの参照設定が必要です。


3行目【Dim ドライブ容量 As Drive】
Drive【ドライブ】オブジェクトを格納する変数「ドライブ容量」をオブジェクト型のDriveで宣言します。


4行目【If myFSO.DriveExists(“C”) Then】
If【イフ】ステートメント(条件分岐)でDriveExists【ドライバーイグズィストゥ】メソッドを使用してCドライブの存在を確認してCドライブが存在していたときを定義します。


5行目【Set ドライブ容量 = myFSO.GetDrive(“C”)】
オブジェクト型変数ドライブ容量にSetキーワードを使用してCドライブが存在していた場合にGetDrive【ゲットドライブ】メソッドでCドライブのDrive【ドライブ】オブジェクトを作成して変数「ドライブ容量」に代入します。


7行目~8行目
【MsgBox “ドライブが存在しません。”
Exit Sub】

4行目の条件分岐で成立しなかったとき(値がFalse)すなわち、Cドライブが存在しない場合
メッセージを表示してマクロを中止します。


9行目【With ドライブ容量】
With【ウィズ】ステートメントでCドライブのDriveオブジェクトが格納されている変数「ドライブ容量」を指定します。


10行目【MsgBox .TotalSize – .FreeSpace】
With【ウィズ】ステートメントで指定したCドライブのDriveオブジェクトが格納されている変数「ドライブ容量」のTotalSize【トータルサイズ】プロパティでCドライブの総容量を取得しFreeSpace【フリースペース】プロパティでCドライブの空き容量を取得して総容量から空き容量を減算することで使用容量を求め、MsgBox関数を利用してドライブの使用容量を表示します。

以上で、ドライブの操作や取得をするFSOのメソッドやプロパティについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告