Home » FSO・FileSystemObjectの使い方 » TextStream.ReadLineの戻り値をローカルウィンドウで確認しましょう

TextStream.ReadLineの戻り値をローカルウィンドウで確認しましょう

Scriptingライブラリに含まれるTextStreamオブジェクトをなかなか理解できないという方には、ReadLineメソッドで

テキストファイルを1行ごとに読み込む様子を、ローカルウィンドウで確認することをオススメします。

[スポンサードリンク]

TexStream.ReadLineを確認するサンプルマクロ

まずはCドライブtempフォルダーにTSVファイルtsv_sample_cp932.txtファイルを用意して、FileSystemObjectへの参照設定が行われている環境で、以下のSubプロシージャを実行してください。

Sub TexStreamのReadLineメソッドを確認する()
 Const F_PATH = "C:\temp\tsv_sample_cp932.txt"

 Dim fso As Scripting.FileSystemObject
 Set fso = New Scripting.FileSystemObject

 Dim ts As Scripting.TextStream
 Set ts = fso.OpenTextFile(FileName:=F_PATH, IOMode:=ForReading)

 Dim rcd As String
 Do Until ts.AtEndOfStream
  rcd = ts.ReadLine
  MsgBox rcd
 Loop

 ts.Close

End Sub

定数F_PATHに指定した、tempフォルダーにTSVファイルtsv_sample_cp932.txtファイルのデータが、1行ごとにメッセージボックスに表示されます。

例えば、TSV形式のtsv_sample_cp932.txtが、以下のような状態のときに、

上記のSubプロシージャを実行すると、下図のように1行目のデータから順番にメッセージボックスに表示されます。

ステップ実行しながら変数の中身を確認しましょう

Do Until~Loopの中でTextStream.ReadLineメソッドを呼ぶことで、1行ごとに読み込まれることを確認したら、拙著『いちばんやさしいExcel VBAの教本』でも多用している、ローカルウィンドウを使って、変数の中身を確認しながらステップ実行することもオススメします。

特に確認すべきは、
  Dim rcd As String
  Do Until ts.AtEndOfStream
   rcd = ts.ReadLine
   MsgBox rcd
  Loop
のDo Until~Loopが繰り返されるたびに、TextStream.ReadLineメソッドが実行され、String型の変数rcdにtsv_sample_cp932.txtのデータが1行ごとに読み込まれる様子と、

Scripting.TextStream型のオブジェクト変数tsから見ることのできる、カレント行番号を表すLineプロパティの値です。

拙著のp.163以降で、For~Nextループのカウンター変数に注目しながらステップ実行する実習を、何度も行っています。

同じ要領で、変数の中身をしっかりと意識しながら、上記Subプロシージャをステップ実行してください。

[スポンサードリンク]

Home » FSO・FileSystemObjectの使い方 » TextStream.ReadLineの戻り値をローカルウィンドウで確認しましょう

「FSO・FileSystemObjectの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.