【ExcelVBA】ドライブの全体容量を取得するには

この記事では、ドライブの全体容量を取得する方法についてご説明します。

【動画】ドライブの全体容量を取得する実際の動き

本題に入る前に、まずは次の動画をご覧ください。


ドライブのルートディレクトリをGetDriveメソッドの引数に指定して実行してドライブの情報を取得します。

取得したドライブの情報の中から、totalSizeのプロパティを参照することでドライブの全体容量を取得することができます。

マクロ作成の流れ

STEP.1
ドライブのルートディレクトリをGetDriveメソッドの引数に指定して実行する
ドライブのルートディレクトリをGetDriveメソッドの引数に指定して実行します。
STEP.2
STEP.1で取得したドライブ情報からtotalSizeを参照する
STEP.1で取得したドライブ情報からtotalSizeプロパティを参照します。
totalSizeプロパティは、ドライブのサイズを返します。

コードの例

Option Explicit

Sub test()

    Dim fso As Object
    Dim drv As Object

    'FileSystemObjectの作成
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Cドライブを指定
    Set drv = fso.GetDrive("C:")

    '全体容量を表示(GBで表示)
    MsgBox drv.totalSize / 1024 / 1024 / 1024 & "(GB)"
    
    '後処理
    Set fso = Nothing
    Set drv = Nothing
    
End Sub

注目すべきコード①

最初に見て頂きたいのは9行目から12行目です。

    'FileSystemObjectのインスタンスを生成する
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    '容量をドライブを指定してドライブ情報を取得する
    Set drv = fso.GetDrive("C:")

コードの説明

以上のコードは、FileSystemObjectのインスタンスを生成および、ドライブのルートディレクトリをGetDriveメソッドの引数に指定して実行する処理のコードです。

ドライブのルートディレクトリとはドライブの最上位階層(Cドライブ直下)のディレクトリで、GetDriveメソッドの引数には、Cドライブなら「C:」または「C:¥」と記述します。

GetDriveメソッドを実行するとドライブの情報が取得でき、変数drvに格納されます。

注目すべきコード②

次に見て頂きたいのは15行目です。

    '全体容量を表示
    MsgBox drv.totalSize / 1024 / 1024 / 1024 & "(GB)"

コードの説明

以上のコードは、ドライブの全体容量を返すtotalSizeの値に対してGB(ギガバイト)サイズでメッセージボックスに表示させる処理のコードです。

totalSizeが返すサイズはバイト単位なので、ギガバイトサイズに変換しています。

動作確認

今回はCドライブで動作確認してみます。

動作確認用PCのCドライブの全体容量は以下のとおりです。

マクロ実行後

マクロを実行すると、Cドライブの全体容量が出力されました。

バイト数で確認すると、全体容量の値が一致していることが確認できました。

最後に

この記事では、ドライブの全体容量を取得する方法についてご説明しました。

マクロ上でドライブの全体容量を取得したい場合は本記事を参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら