FileLen 関数は開かれていないファイルのサイズをバイト単位で返します。
この関数を開かれているファイルに使用すると、開かれる前のファイルサイズを返します。
LOF 関数はOpen ステートメントを使用して開いたファイルのサイズをバイト単位で返します。
FileLen関数の使用方法
引数名 | 省略 | 説明 |
---|---|---|
PathName | × | ファイルパス(絶対パスまたは相対パス)を表す文字列式を指定します。 相対パスを指定したときの基準はカレントフォルダ になります。 |
LOF関数の使用方法
引数名 | 省略 | 説明 |
---|---|---|
FileNumber | × | 任意の有効なファイル番号を表す整数型 (Integer) の数値を指定します。 |
FileLen、LOF関数の使用例
テキストファイルの更新前、更新中、更新後のファイルサイズを取得して、イミディエイトウィンドウへ表示する例です。
サンプルで使用したテキストファイルには、改行コード(vbCr + vbLf)2バイトが各行に含まれています。
Sub sample_ef07b_01()
Dim FileNumber As Integer
Dim FilePath As String
Dim i As Integer
'使用可能なファイル番号を取得します。
FileNumber = FreeFile
'入力ファイルパスの設定
FilePath = ThisWorkbook.Path & "¥test_ef07b_01.txt"
'入力ファイルの存在チェック
If Dir(FilePath) = "" Then
MsgBox "入力ファイルが存在しません。", vbCritical
'入力ファイルがない場合はここで処理を終了
End
End If
'ファイルサイズをイミディエイトウィンドウへ出力
Debug.Print "更新前:" & FileLen(FilePath) & " Byte"
'テキストファイルを追加出力モードで開きます。
Open FilePath For Append As #FileNumber
For i = 1 To 5
Print #FileNumber, CStr(i)
'ファイルサイズをイミディエイトウィンドウへ出力
Debug.Print "更新中:i = " & i & " " & LOF(FileNumber) & " Byte"
Next i
Close #FileNumber
'ファイルサイズをイミディエイトウィンドウへ出力
Debug.Print "更新後:" & FileLen(FilePath) & " Byte"
End Sub
テキストファイル新規作成 ThisWorkbook
ワークブックの名前とパス Dir関数
下図は入力ファイルの内容です。改行コード(2バイト)が含まれています。
上記サンプルマクロの実行結果です。連番が追加出力されています。