本ページには広告が含まれています。

VBA EOF 関数 ファイルの終端に到達したらTrueを返す

VBA EOF 関数 ファイルの終端に到達したらTrueを返す

Excel VBAの「EOF 関数」について解説します。

スポンサーリンク

EOF 関数とは

Excel VBA の EOF 関数は、ファイルの終端(End Of File)に到達したかどうかを判断するための関数です。ランダムアクセスモードまたはシーケンシャル入力モードで開いたファイルの現在位置が終端に達している場合に True を返します。

この関数を使用することで、ファイルの読み取り処理が終わったかどうかを確認することができます。

EOF 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。

EOF 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

EOF(filenumber)

引数

引数 説明
filenumber【必須】Openステートメントで開かれたファイルに
割り当てられたファイル番号を指定します

戻り値

戻り値説明
ブール値
(Boolean)
EOF関数はブール値(True または False)を返します
True : ファイルの終端に達した場合
False : ファイルの終端に達していない場合

解説(使用例)

EOF 関数の使い方をサンプルで確認しましょう。

EOF 関数サンプル

EOF 関数の基本的な使い方の例です。

テキスト形式のファイル終端を確認する例

次の例は、テキスト形式のファイル内容を読み取り、EOF 関数を使用してファイルの終端に達するまで処理を続ける基本的な方法です。

'■EOF関数使用例1(基本的な使用例)
Sub EOF_Sample()
    Dim filePath As String
    Dim strLine As String
    Dim n As Long

    ' ファイルのパスを指定
    filePath = "C:\VBA_test\bas\Module1.bas"

    ' ファイルを開く(ファイル番号をナンバー記号「#」付きで指定)
    Open filePath For Input As #1

    ' ファイルの終端に達する(Trueになる)までループ
    Do While Not EOF(1)
        Line Input #1, strLine
        n = n + 1 ' 行数をカウントする
        Debug.Print strLine ' 書込内容をイミディエイトに表示
    Loop

    ' ファイルを閉じる
    Close #1 'fileNumber
    MsgBox filePath & vbCrLf & _
                "の行数は「" & n & "行」でした"
End Sub

イミディエイト画像は省略します。最後の MsgBox 画像指定がこちらです。

EOF_Sample 実行最後に表示されるメッセージ画像

【コードの補足説明】

・8行目、ファイルのパスを変数に格納します。

・10行目、Openステートメントで指定パスのファイルを Input モードでファイル番号 #1 で開きます。

・13行目、Do While Not … Loop を使用して、EOF(1) が True を返すまで(ファイルの終端に達するまで)処理を継続していきます。

・15行目、Line Input #1, strLine を使用してファイルの1行を読み取り、strLine 変数に格納します。

・16行目、ファイルのテキスト行数をカウントするように設定しています。

・17行目、読み取ったテキストの内容をDebug.Printでイミディエイトウィンドウに表示します。

・21行目、処理が完了しので、Closeステートメントでファイルを閉じます。

・22行目、メッセージボックスでファイル内のテキスト行数を表示します。

【注意点】
・対象のファイルが正しく開かれていない場合、エラーが発生します。
・ファイル番号はFreeFile関数を使用して取得すれば空いている番号を自動取得できます。

おわりに

Excel VBA の EOF 関数は、ファイルの読み取り処理の際にファイルの終端に到達したかどうかを判断するための関数です。この関数を使用することで、ファイルの読み取り処理が終わったかどうかを確認することができます。

EOF 関数を使用することで、ファイル終端を簡単に確認できるので、ファイルの読み取り処理を安全かつ効率的に行うことができます。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!