テキストファイルの行数を調べる
Line Inputでテキストを1行ずつ読み、読み取った行数を表示します。
実行前に確認
- Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
- 末尾の改行後に追加の空行を自動で数えるわけではありません。LFのみなど改行形式によって期待する行数と違う場合があるため、CRLFのテキストで試します。
- UTF-8を正しく読む必要がある場合はADODB.Streamの例を使います。
1サンプルコード
Sub Example4016()
Dim filePath As String, fileNumber As Integer, opened As Boolean
Dim lineText As String, n As Long, message As String
filePath = "C:\Data\sample.txt"
On Error GoTo Failed
fileNumber = FreeFile
Open filePath For Input As #fileNumber
opened = True
Do Until EOF(fileNumber)
Line Input #fileNumber, lineText
n = n + 1
Loop
Close #fileNumber
opened = False
MsgBox n & "行を読みました"
Exit Sub
Failed:
message = Err.Description
On Error Resume Next
If opened Then Close #fileNumber
On Error GoTo 0
MsgBox message
End Sub図で見る操作の流れ
イメージ図コードの動きを表した概念図です。実際のExcel画面ではありません。
入力:テキストファイル
C:\Data\sample.txt Windows既定文字コード・CRLFで用意
マクロ:1行ずつ読む
Line Inputで読み、1行読むたびnを1増やす
マクロ:末尾で閉じる
EOFまで繰り返してファイルを閉じる
結果:行数を表示
「n行を読みました」と表示する
空行も1行、空ファイルなら0行です。ファイルは変更しません。読込みエラー時は開いたファイルを閉じてエラーを表示します。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 2
Windowsの既定文字コード(日本語環境なら通常ANSI/Shift-JIS系)で保存した練習用sample.txtを用意し、filePathを書き換えます。
- 3
実行するSubの内側にカーソルを置き、F5キーを押します。
- 4
空行も1行として数えます。空のファイルなら0行です。