※本ブログのページには広告主との提携による広告や宣伝、プロモーションが含まれます。当ブログを経由しての商品の購入や、サービス申し込みが発生すると、それらの提携企業からの成果報酬を受けとる場合があります。

VBA|Sizeプロパティ(ファイルシステムオブジェクト)

Sizeプロパティは指定したフォルダやファイルのサイズ(容量)を返します。なお、ファイルの場合は指定したファイルのサイズ(容量)、フォルダの場合は指定フォルダに含まれるすべてのサブフォルダの合計サイズ(容量)となり、サイズ(容量)はバイト(byte)単位で表示されます。

※ファイルシステムオブジェクト(FileSystemObject)についてはこちら

Sizeプロパティの構文

フォルダまたはファイルオブジェクト(Object).Size

Sizeプロパティの構成要素と引数

要素/引数 必須/任意 説明
フォルダまたはファイルオブジェクト
(Object)
必須 フォルダまたはファイルを指定します。

Sizeプロパティを利用してフォルダやファイルのサイズ(容量)をバイト単位で取得します。

Sizeプロパティをつかったサンプルマクロ

次のマクロはSizeプロパティを利用してイミディエイトウィンドウに指定したフォルダとファイルのサイズ(容量)をバイト単位で表示します。

  
Option Explicit

Sub ファイルシステムオブジェクト_Sizeプロパティ1()
    'ファイルシステムオブジェクトを使うため準備
    '①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
    Dim FSO As FileSystemObject
    Set FSO = New FileSystemObject

    'フォルダおよびファイルオブジェクトを代入する変数の宣言
    Dim FolderObject As Object, FileObject As Object

    'GetFolderメソッドでフォルダオブジェクトを代入
    Set FolderObject = FSO.GetFolder("C:\Users\ユーザー名\Desktop\Test")

    'GetFileメソッドでファイルオブジェクトを代入
    Set FileObject = FSO.GetFile("C:\Users\ユーザー名\Desktop\Test\サンプル画像.jpg")

    'Sizeプロパティを利用してフォルダのサイズを表示する
    Debug.Print "① "; FolderObject.Size&; "bytes"

    'Sizeプロパティを利用してフォルダのサイズを表示する
    Debug.Print "② "; FileObject.Size&; "bytes"

End Sub

19行目

Sizeプロパティを利用してフォルダをつかって変数「FolderObject」に代入したフォルダの容量を返します。
(※単位はバイト)

22行目

Sizeプロパティを利用してフォルダをつかって変数「FileObject」に代入したファイルの容量を返します。
(※単位はバイト)

指定したフォルダとファイルのサイズ(容量)をバイト単位でイミディエイトウィンドウに表示します。

Sizeプロパティをつかうときはオブジェクトを取得してから使おうね。

次のマクロはSizeプロパティで求めたサイズ(容量)を、キロバイト単位に変換した結果をイミディエイトウィンドウにキロバイト単位で表示します。

※RoundUp関数をつかって引数に指定した値を値を切り上げしています。

  
Option Explicit

Sub ファイルシステムオブジェクト_Sizeプロパティ2()
    'ファイルシステムオブジェクトを使うため準備
    '①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
    Dim FSO As FileSystemObject
    Set FSO = New FileSystemObject

    'フォルダおよびファイルオブジェクトを代入する変数の宣言
    Dim FolderObject As Object, FileObject As Object

    'GetFileメソッドでファイルオブジェクトを代入
    Set FileObject = FSO.GetFile("C:\Users\ユーザー名\Desktop\Test\サンプル画像.jpg")

    'ファイルのサイズをキロバイトに変換した値を代入する変数を宣言する
    Dim Filesize As Double

    'ワークシート関数のRoundUpをつかってキロバイトに変換する
    Filesize = Application.WorksheetFunction.RoundUp(FileObject.Size / 1024, "0")

    'Sizeプロパティを利用してフォルダのサイズを表示する
    Debug.Print "③ "; Filesize; "kbytes"

End Sub

16行目

計算結果を代入する変数「Filesize」を宣言しています。

19行目

Sizeプロパティを利用してフォルダをつかって変数「FileObject」に代入したフォルダの容量を、ワークシート関数のRoundUpの引数として、キロバイト(Kbyte)単位に変換する計算をしています。計算した結果の値を変数「Filesize」に代入しています。

22行目

変数「Filesize」をイミディエイトウィンドウに表示します。

Sizeプロパティで返されたファイルの容量を、バイト単位からキロバイト単位に変換してイミディエイトウィンドウに表示します。

Windowsのエクスプローラーやプロパティではキロバイト(KB)で表示されているね。

PR

独学でプログラミングをはじめてみたけど、このままの学習方法に不安を感じているのなら、
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験

コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。

コメント