この記事ではFileLen関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
FileLen関数の使い方と注意点
FileLen関数は、指定したファイルのバイトサイズを取得するための関数です。
ファイルの存在確認後に、容量チェックやログファイルのサイズ管理などで活用されます。
FileLen関数はファイルが存在しないとエラーになるため、事前にDir()などで存在確認を行うのが安全です。
構文
FileLen(ファイルパス)
- ファイルパス : フルパスまたは相対パスで指定します。
- 戻り値 : ファイルサイズ(バイト単位、Long型)を返します。
使用例
ファイルサイズを取得する基本例
Sub Sample()
Dim size As Long
size = FileLen("C:\Temp\sample.txt")
Debug.Print size & " バイト"
End Sub
▶ 出力結果
88562 バイト
ファイルの存在チェック後、ファイルサイズを取得
ファイルが存在しない場合、FileLen関数はエラーになります。

特定のファイル名を指定する場合、ファイルサイズを取得する前にファイルが存在するか確認しましょう。
Sub Sample()
Dim FilePath As String
Dim size As Long
FilePath = "C:\Temp\sample.txt"
If Dir(FilePath) <> "" Then
size = FileLen(FilePath)
Debug.Print "サイズ: " & size & " バイト"
Else
Debug.Print "ファイルが存在しません"
End If
End Sub
▶ 出力結果
サイズ: 88562 バイト
複数ファイルのサイズをまとめて出力
Sub Sample()
Dim FolderPath As String
Dim FileName As String
Dim row As Long
FolderPath = "C:\Temp\"
FileName = Dir(FolderPath & "*.txt")
row = 1
Do While FileName <> ""
Cells(row, 1).Value = FileName
Cells(row, 2).Value = FileLen(FolderPath & FileName)
row = row + 1
FileName = Dir()
Loop
End Sub
ファイルサイズが一定以上か判定する
Sub Sample()
Dim FolderPath As String
Dim FileName As String
Dim row As Long
FolderPath = "C:\Temp\"
FileName = Dir(FolderPath & "*.txt")
row = 1
Do While FileName <> ""
Cells(row, 1).Value = FileName
Cells(row, 2).Value = FileLen(FolderPath & FileName)
If FileLen(FolderPath & FileName) > 100000 Then
With Cells(row, 3)
.Value = "ファイルサイズが100KBを超えています"
.Interior.Color = RGB(255, 0, 0)
End With
End If
row = row + 1
FileName = Dir()
Loop
End Sub
⚠️注意
ファイルが存在しないとエラー
存在しないファイルを指定すると**実行時エラー53(ファイルが見つかりません)**になります。

特定のファイル名を指定する場合、ファイルサイズを取得する前にファイルが存在するか確認しましょう。
ディレクトリやフォルダを指定するとエラー
FileLenはファイル専用です。フォルダを指定すると**実行時エラー53(ファイルが見つかりません)**になります。
Sub Sample()
Dim size As Long
size = FileLen("C:\Temp\")
Debug.Print size & " バイト"
End Sub
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方

