TextStreamクラスのReadLineメソッド
TextStreamクラスのReadLineメソッドは、FileSystemObjectクラスのCreateTextFileメソッドやOpenTextFileメソッドで開いたファイルから行単位でデータを取得します。取得したデータには改行コードは含まれません。
ReadLineメソッドを実行する度に次の行のデータが読み取られます。
TextStreamクラスの他のメソッドやプロパティは「FileSystemObjectとTextStreamのメソッド・プロパティ一覧」をご参照ください。
構文
Function ReadLine() As String
引数 | ありません |
戻り値 | 改行コードまでを読み取ります。注意点として、CRLFとLFは改行コードとみなしますが、CRは改行コードとみなされません。読み取った文字列には改行コードは含みません。 |
事前設定
以下のサンプルコードでは参照設定でFileSystemObjectクラスを利用できるようにしています。
FileSystemObjectクラスを利用するには、事前にVBA画面→ツールメニュー→参照設定、を選択し、参照設定ダイアログで「Microsoft Scripting Runtime」にチェックを付けます。
詳細は「VBAでのFileSystemObjectとTextStreamの使い方」の事前設定をご参照ください。
サンプルコード
一般的なテキストファイルを参照する処理をサンプルで書いています。
テキストファイルを開いて、1行ずつ読み取り、ファイルを閉じるコードです。
テキストファイルの全行を読み込む場合はファイル終端を判定するAtEndOfStreamプロパティを使ってテキストファイルの全行ループを行います。似たようなプロパティでAtEndOfLineプロパティがありますが、こちらを使うと空行(改行コードしかない行)の位置でループが終了してしまいます。
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 26 27 28 29 30 31 32 33 34 35 36 37 38 |
Sub TextStreamReadLine() On Error GoTo ERR_LABEL Dim fso As New FileSystemObject '// FileSystemObjectクラス Dim ts As TextStream '// TextStreamクラス Dim sFilePath '// ファイルパス Dim sLine '// ファイル行 '// ファイルパスを設定 sFilePath = "C:\aaa.txt" '// ファイルを開く Set ts = fso.OpenTextFile(Filename:=sFilePath, IOMode:=ForReading, Create:=False, Format:=TristateFalse) Dim i i = 1 '// ファイルを全行ループ Do While ts.AtEndOfStream <> True '// ファイルから1行取得 sLine = ts.ReadLine Debug.Print CStr(i) & " : [" & Len(sLine) & "]:[" & sLine & "]" i = i + 1 Loop '// ファイルを閉じる ts.Close ERR_LABEL: '// エラー発生時 If Err.Number <> 0 Then '// エラー内容を出力 Debug.Print Err.Number & " " & Err.Description End If End Sub |
実行結果
ファイルから読み取った行データをイミディエイトウィンドウに出力します。