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】
TotalSizeプロパティでCドライブの総容量を取得し
FreeSpaceプロパティでCドライブの空き容量を取得して
総容量から空き容量を減算することで使用容量を求め
MsgBox関数を利用してドライブの使用容量を表示します。


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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク