【VBA】ファイルの行末か判定(AtEndOfLine)

投稿者: | 2023年5月26日
excelアイコン

TextStreamオブジェクトAtEndOfLineプロパティについてです。

AtEndOfLineプロパティ

概要

ファイルの行の末尾の直前にファイルポインターが

ある場合は➡True

ない場合は➡False

を返します。

構文

TextStreamObject.AtEndOfLine

VBAサンプル

ファイル内の指定した文字の個数を取得

まずFileSystemObjectをセットして、FileSystemObjectのOpenTextFileメソッドでForReading(読込モード)に設定して指定したファイルを開きTextStreamオブジェクトが返るのでセットします。

あとはDo Until~LoopでTextStreamオブジェクトのAtEndOfStreamプロパティがTrueになるまで、If文とTextStreamオブジェクトのAtEndOfLineプロパティで行末かの判定且つ、textStreamオブジェクトのReadメソッドで文字を判定(今回はAを検索)してTrueの場合は変数cntをプラス1します。

次のElseIfは行末ではなかったらTextStreamオブジェクトのSkipメソッドで文字をスキップさせてます。

Elseは行末だったらTextStreamオブジェクトのReadLineメソッドで1行下げます。

この工程をファイルの末尾まで繰り返すとAという文字が何個あるかわかるというAtEndOfLineプロパティを使用した応用になります。

結果

ファイル内のAという文字の個数を取得します。

VBA_textstream_AtEndOfLine

行末の列番号はこちらで取得できます。