VB系言語は他の言語とはテキストファイルのEOF(ファイルの終わり)のタイミングが違う。

例えば、10レコードあったとする。通常の言語、例えばCOBOLだと11件目を読み込んだとき、つまり最終レコードの次のレコードを読み込もうとして、なければEOFとなるが、VBAでは10件目を読み込んだとき、つまり最終レコードを読み込んだ時点でEOFになる

これは、ファイルを読み込むアルゴリズムに影響がある。

通常のもの、例えばCOBOLなどだと

 ・ファイルオープン
 ・ファイル読み込み
 ・繰り返し:EOFになるまで(COBOL だと AT END まで)
   (処理)
   ファイル読み込み 
 -繰り返し終わり
 ・ファイルクロース

となる。
しかし、VBAだと

 ・ファイルオープン
 ・繰り返し
   ファイル読み込み 
   (処理)
 -繰り返し終わり:EOFになるまで
 ・ファイルクロース

となる。

ただし、これはテキストファイルに限った話である。VB系言語でも、データベースアクセスでは話が違う。DAOなどを使った場合、最終レコードの次のレコードを読み込もうとして、なければEOFとなるのである。

VBの負の遺産と言えるだろう。別の命令かメソッドを作って、現状の命令を推奨しないようにしていく方がいいかと思う。