Excel VBAの「FileLen 関数」について解説します。
FileLen 関数とは
Excel VBA の FileLen 関数は、指定したファイルのサイズをバイト単位で返します。ファイル内にデータが存在しているかどうかを確認する際にも利用できます。
FileLen 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
FileLen 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
FileLen(pathname)
引数
引数 | 説明 |
---|---|
pathname | 【必須】ファイルのパスを示す文字列式を指定します フォルダ名およびドライブ名を含めることができます |
戻り値
戻り値 | 説明 |
---|---|
ファイルサイズ (Long) | ファイルのサイズ (長さ) をバイト単位で返します |
解説(使用例)
FileLen 関数の使い方について、サンプルを使って解説します。
FileLen 関数サンプル
FileLen 関数の基本的な使い方をサンプルで確認しましょう。
指定ファイルのサイズを取得する基本的な例
指定したファイルのサイズ (バイト数) をメッセージボックスで表示します。
このVBAコードを実行すると、指定したファイルから取得したサイズが MsgBox に表示されます。

【コードの補足説明】
・7行目、エラーハンドリングを設定しています。
・10行目、ファイルのパスを変数に格納します。
・12行目、FileLen 関数を使用して指定されたファイルのサイズを取得して変数に格納します。
・14行目、MsgBox に取得したファイルのサイズ(バイト単位)を表示します。
・17~19行目、エラーが発生した場合に実行されるコードを記載しています。
【注意点】
・エラーハンドリングを設定しない場合、ファイルパスが存在しない等の実行時エラーが発生するとコードが途中で中断されてしまいます。
フォルダ内の全ファイルのサイズを取得する応用例
Dir関数とFileLen関数を併用して、指定フォルダ内に存在する複数ファイルのサイズを取得するサンプルです。
コード実行でフォルダ内の全ファイルからサイズを取得して次のように MsgBox に表示します。

【コードの補足説明】
・13行目、Dir 関数で最初のファイル名を取得しています。ここではファイルの種類を全種(*.*)に設定していますが、(*.txt)のように拡張子を指定することで種別を絞ることができます。
・15行目、Do While fileName <> “” 条件が満たされるまで(fileName <> ""
)ループを続けます。
・19行目、変数 totalSize を使って各ファイルのサイズを加算していきます。
・24行目、次のファイル名を Dir 関数で取得します。取得できなかった場合 fileName = ""
となるのでループが終了します。
・27行目、取得できた情報を MsgBox に表示します。
Module2.bas のファイルサイズが 0 Byteなので、ファイルの中身が無いことが確認できます。おそらくファイル保存時になんらかの原因で失敗したなどが考えられます。サイズが 0 Byteのファイルを見つけ出すのにも利用できそうですね。
おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA の FileLen 関数は、指定したファイルのサイズをバイト単位で取得するための関数です。
具体的にどのような場面で FileLen 関数が利用されるのか、思いついたものを列記しておきます。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;