
TextStreamオブジェクトのColumnプロパティについてです。
Columnプロパティ
概要
ファイルの現在の文字位置の列番号を返します。
構文
TextStreamObject.Column
VBAサンプル
行末の列番号を取得
まずFileSystemObjectをセットして、FileSystemObjectのOpenTextFileメソッドでForReading(読込モード)に設定して指定したファイルを開きTextStreamオブジェクトが返るのでセットします。
あとはDo Until~LoopでTextStreamオブジェクトのAtEndOfStreamプロパティがTrueになるまで、If文とTextStreamオブジェクトのAtEndOfLineプロパティで行の末尾かを判定しながら、行の末尾ではなかったらTextStreamオブジェクトのSkipメソッドで文字をスキップさせて、行の末尾だったら列番号を取得してTextStreamオブジェクトのReadLineメソッドで1行下げ、ファイルの末尾まで繰り返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Sub test() '変数 Dim fso As Object, ts As Object 'FileSystemObjectをセット Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectのOpenTextFileメソッドでTextStreamオブジェクトをセット Set ts = fso.OpenTextFile("D:\sample\test.txt", ForReading) 'TextStreamオブジェクトのAtEndOfStreamプロパティがTrueになるまで繰り返す Do Until ts.AtEndOfStream 'TextStreamオブジェクトのAtEndOfLineプロパティで行末かを判定 If ts.AtEndOfLine = False Then '文字を1文字スキップさせる ts.Skip (1) Else '行末の列番号を取得 Debug.Print ts.Column '1行下げる ts.ReadLine End If Loop ts.Close End Sub |
【結果】
行の末尾の列番号が取得できます。(メモ帳だと改行がわからないので、改行がわかるSakuraエディタを使用しています)