※TextStreamオブジェクトを取得するにはこちら↓
VBA ファイルシステムオブジェクト・OpenTextFile - ray88’s diary
※FileSystemObjectのプロパティとメソッド一覧↓
VBA FileSystemObjectの主なプロパティとメソッド - ray88’s diary
■TextStreamオブジェクトの主なプロパティ
メンバー | 読取専用 | 説明 |
---|---|---|
Property AtEndOfLine As Boolean | 〇 | TextStreamオブジェクトのファイルポインタが行末にあるかどうかを表すブール値 |
Property AtEndOfStream As Boolean | 〇 | TextStreamオブジェクトのファイルポインタがファイルの末尾にあるかどうかを表すブール値 |
Property Column As Long | 〇 | TextStreamオブジェクトのファイルポインタの列番号を表す整数 |
Property Line As Long | 〇 | TextStreamオブジェクトのファイルポインタの行番を表す整数 |
■TextStreamオブジェクトの主なメソッド
メンバー | 説明 |
---|---|
Sub Close() | TextStreamファイルを閉じる |
Function Read(Characters As Long) As String | TextStreamファイルからCharactersで指定した文字数の文字列を読み取る |
Function ReadAll() As String | TextStreamファイルから全ての文字列を読み取る |
Function ReadLine() As String | TextStreamファイルから1行分の文字列を読み取る |
Sub Skip(Charecters As Long) | TextStreamファイルについてCharactersで指定した文字数をスキップする |
Sub SkipLine() | TextStreamファイルについて1行分をスキップする |
Sub Write(Text As String) | TextStreamファイルに文字列Textを書き込む |
Sub WriteBlankLines(Lines As Long) | TextStreamファイルにLinesで指定した行数の改行文字列を書き込む |
Sub WriteLine([Text As String]) | TextStreamファイルに文字列Textと改行文字を書き込む |
■サンプルコード
Sub ReadTextFile() Dim Fso As Object 'ファイルシステムオブジェクト格納用 Dim St As Object 'テキストストリームオブジェクト格納用 Dim buf As Variant '1行分の文字列格納用 Dim dataArray As Variant '1行分の各項目を配列にして格納 Dim targetPath As String '対象テキストファイルパス 'FileSystemObjectをインスタンス化 Set Fso = CreateObject("Scripting.FileSystemObject") '読込対象テキストファイルパス targetPath = "C:\デスクトップ\ダミー.CSV" '読み取り専用でファイルを読み取り Set St = Fso.OpenTextFile(targetPath, 1, False, -2) 'ファイルの最後まで繰り返し Do Until St.AtEndOfStream '1行分のデータを読み取り buf = St.ReadLine '1行分のデータをカンマ区切りで配列に格納 dataArray = Split(buf, ",") '先頭行(項目名)以外の場合、値確認のログ出力 If St.Line <> 0 Then MsgBox St.Line & "行目:" & dataArray(0) & " :" & dataArray(1) & " :" & dataArray(2) End If '3行目以降は繰り返し処理を抜ける If St.Line > 3 Then Exit Do End If Loop 'ファイルを閉じる St.Close End Sub