← コード一覧へ戻る
実務テキストファイル

テキストファイルの行数を調べる

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画面ではありません。

  1. 入力:テキストファイル

    C:\Data\sample.txt Windows既定文字コード・CRLFで用意

  2. マクロ:1行ずつ読む

    Line Inputで読み、1行読むたびnを1増やす

  3. マクロ:末尾で閉じる

    EOFまで繰り返してファイルを閉じる

  4. 結果:行数を表示

    「n行を読みました」と表示する

空行も1行、空ファイルなら0行です。ファイルは変更しません。読込みエラー時は開いたファイルを閉じてエラーを表示します。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    Windowsの既定文字コード(日本語環境なら通常ANSI/Shift-JIS系)で保存した練習用sample.txtを用意し、filePathを書き換えます。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。

  4. 4

    空行も1行として数えます。空のファイルなら0行です。

使っている機能の公式ドキュメント(Microsoft Learn)