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

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

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

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


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

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

マクロ作成の流れ

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

コードの例

Option Explicit

Sub test()

    Dim fso As Object       'FileSystemObjectのインスタンス用変数
    Dim drv As Object       'ドライブ用変数

    'FileSystemObjectのインスタンスを生成する
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ドライブのルートディレクトリを指定してドライブ情報を取得する
    Set drv = fso.GetDrive("C:")

    '空き容量を表示(GBで表示)
    MsgBox drv.FreeSpace / 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行目です。

    '空き容量を表示(GBで表示)
    MsgBox drv.FreeSpace / 1024 / 1024 / 1024 & "(GB)"

コードの説明

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

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

動作確認

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

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

マクロ実行後

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

最後に

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

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

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

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

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

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