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

テキストファイルを読み込む(Line Inputを使う場合)

テキストファイルを1行ずつ読み、新規シートのA列へ文字列として出力します。

実行前に確認

  • Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
  • 文字列書式で入れるので、=から始まる行も数式として実行しません。セルの32,767文字・シート行数上限を超えると中止します。既に出力した行は残ります。
  • UTF-8など異なる文字コードでは文字化けすることがあります。

1サンプルコード

Sub Example4022()
    Dim filePath As String, fileNumber As Integer, opened As Boolean
    Dim lineText As String, n As Long, message As String
    Dim ws As Worksheet
    filePath = "C:\Data\sample.txt"
    On Error GoTo Failed
    fileNumber = FreeFile
    Open filePath For Input As #fileNumber
    opened = True
    Set ws = ThisWorkbook.Worksheets.Add
    ws.Columns("A").NumberFormat = "@"
    Do Until EOF(fileNumber)
        Line Input #fileNumber, lineText
        n = n + 1
        If n > ws.Rows.Count Then Err.Raise 6, , "行数の上限です"
        If Len(lineText) > 32767 Then Err.Raise 6, , "1セルの文字数上限を超えます"
        ws.Cells(n, 1).Value = lineText
    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. マクロ:新規シートを作る

    A列を文字列書式に設定する

  3. マクロ:1行→1セル

    1行目→A1、2行目→A2… 空行は空セルになる

  4. 結果:ファイルを閉じる

    読み終えた行数をメッセージに表示する

元ファイルは変更しません。「=」で始まる行も文字列です。文字数・行数上限などで中止した場合、既に出力したセルは残ります。

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

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

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

  2. 2

    Windowsの既定文字コード・CRLF改行の練習用テキストを作り、filePathをそのパスへ変更します。

  3. 3

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

  4. 4

    実行すると新規シートを作り、1行目をA1、2行目をA2へ書きます。空行は空のセルになります。

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