【Excel VBA】テキストファイルの内容を一行ずつ読み込むマクロ

目次

テキストファイルの内容を1行ずつ読み込むマクロテンプレート

Sub sample()
    Dim inputFile As String
    Dim readLine As String
    inputFile = "<ファイルパス>"

    Open inputFile For Input As #1
    
    Do Until EOF(1)
        Line Input #1, readLine
    Loop
    
    Close #1
End Sub

以下で詳しく解説します。

テキストファイルの内容を1行ずつ読み込む手順

テキストファイルの内容を1行ずつ読み込むためには以下の手順を実施します。

  1. 対象のテキストファイルを開く
  2. 開いたテキストファイルを1行目から順に最終行まで読み込む
  3. 対象のテキストファイルを閉じる

①③対象のテキストファイルを開く/閉じる

テキストファイルを開く/閉じるマクロは以下です。

Sub sample()
    Dim inputFile As String
    inputFile = "C:\Users\share\Desktop\folder\test.txt"

    Open inputFile For Input As #1
    Close #1
End Sub

解説

以下の行では、読み込み対象のテキストファイルのパスを格納するための String 型の変数 inputFile を宣言し、その inputFile に対象のテキストファイルのパスを格納しています。

    Dim inputFile As String
    inputFile = "C:\Users\share\Desktop\folder\test.txt"

以下の行では対象のテキストファイルを開いています。

    Open inputFile For Input As #1
テキストファイルを開く構文
  • Open <ファイルパス> For Input As #<ID番号>

以下の行では対象のテキストファイルを閉じています。

    Close #1
テキストファイルを閉じる構文
  • Close #<ID番号>
    • <ID番号> はテキストファイルを開く構文で指定した ID と一致させる

②テキストファイルを1行ずつ読み込む

対象のテキストファイルを開いている状態でテキストファイルを1行ずつ読み込みます。

以下のように記述することで開いているテキストファイルを1行ずつ最終行まで読み込むことができます。

Sub sample()
    Dim inputFile As String
    Dim readLine As String
    inputFile = "C:\Users\share\Desktop\folder\test.txt"

    Open inputFile For Input As #1
    
    Do Until EOF(1)
        Line Input #1, readLine
    Loop
    
    Close #1
End Sub

解説

以下の行では読み込んだ1行の内容を格納するための String 型の変数 readLine を宣言しています。

    Dim readLine As String

以下の Do ~ Loop のかたまりでは、対象のテキストファイルを1行ずつ読み込み、その内容を変数 readLine に格納しています。条件式に Until EOF(1) と指定することで「最終行まで読み込むまで」という条件にすることができます。

    Do Until EOF(1)
        Line Input #1, readLine
    Loop
テキストファイルを1行読み込み変数に格納する構文
  • Line Input #<ID番号>, <格納先変数名>
    • <ID番号> はテキストファイルを開く構文で指定した ID と一致させる

実行例

以下のマクロは、指定のテキストファイルを1行ずつ読み込み、シート上のセルに順に内容を保存します。

Sub sample()
    Dim inputFile As String
    Dim readLine As String
    Dim i As Integer
    inputFile = "C:\Users\share\Desktop\folder\test.txt"

    Open inputFile For Input As #1
    
    i = 0
    Do Until EOF(1)
        Line Input #1, readLine
        i = i + 1
        ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value = readLine
    Loop
    
    Close #1
End Sub

なお、対象のテキストファイルの内容は以下だとします。

aaaaaaa
bbbbbbb
ccccccc
ddddddd
eeeeeee

このマクロを実行した結果、以下のようにシート上にテキストファイルの内容が保存されます。


あわせて読みたい
【Excel VBA】テキストファイルの内容を変数に読み込むマクロ(全文一括) 【テキストファイルの内容を変数に読み込む】 ここではテキストファイルを開きその内容全文を一つの変数に格納する方法について記載します。 【テキストファイルの内容...
あわせて読みたい
【Excel VBA】ファイルに1行ずつ文字列を出力する方法 【ファイルに1行ずつ文字列を出力するマクロテンプレート】 上書き型出力の場合 Sub sample() Dim outputFile As String outputFile = "<出力先ファイルパス>" Op...
あわせて読みたい
Excel VBA マクロ作成用情報まとめ 【初学者向け情報】 【Excel VBA】初心者からマクロを作成できるようになるまでの学習ロードマップ 【Excel VBA マクロ独学者・初心者向け】VBA 学習の第一歩【このペー...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

とあるエンジニアです。

当ブログでは Excel VBA のマクロ作成に役立つ情報を中心に情報展開しています。

Excel VBA マクロを使いこなして時短し、人生の質『QOL』を高めていきましょう。

プロフ画像:Copyright (C) SQUARE ENIX CO., LTD. All Rights Reserved.

目次