Excel VBA テキストファイルを1行ずつ簡単に読み込む方法|実践コード

 

Excel VBAでテキストファイルを1行ずつ読み込む基本的な方法を徹底解説!使い方、注意点やサンプルコードを紹介します。

 

「VBAスキルを証明できれば、社内評価アップにつながるかもしれません
👉 VBAを学んで社内評価を上げる方法はこちら

 

 

Excel VBA テキストファイルを1行ずつ読み込む基本的な手順

ファイル形式の確認

・取り扱うファイルがテキスト形式(.txt, .csvなど)であることを確認してください。

・区切り文字(カンマ、タブ)や文字コード(UTF-8、Shift-JISなど)も把握しておく必要があります。

 

必要なVBA設定

「Microsoft Scripting Runtime」が必要になる場合があるため、VBE(Visual Basic Editor)の「ツール」⇒「参照設定」から確認します。

 

Excel VBA テキストファイルを1行ずつ読み込むポイント

1行ずつテキストを読み込む

外部のテキストファイルを開き、1行ずつ読み込む手順は以下になります。

1.ファイルのオープン
Open "ファイルのパス" For Input As #1
ファイルを読み取り専用で開きます。

2.1行ずつ読み込み
Line Input #1, データ変数
Line Inputステートメントを使用して1行ずつデータを読み込みます。

3.ファイルのクローズ
Close #1
ファイルを閉じます。

 

ポイント

・ファイルの存在やアクセス権限に注意してください。

・テキストファイルのフォーマットによっては、データの解釈に問題が生じる可能性があります。

 

「VBAスキルを証明できれば、社内評価アップにつながるかもしれません
👉 VBAを学んで社内評価を上げる方法はこちら

 

 

Excel VBA テキストファイルを1行ずつ読み込むサンプルコード

テキストファイルを1行ずつ読み込むシンプルなコード例

Option Explicit

Sub ReadTextFileLineByLine()
    Dim filePath As String
    Dim fileNumber As Integer
    Dim lineData As String

    filePath = "C:\Users\User\Desktop\新しいフォルダー\テキスト .txt" ' 読み込むファイルのパス
    fileNumber = FreeFile

    ' ファイルを開く
    Open filePath For Input As fileNumber
    Do Until EOF(fileNumber) ' ファイルの終わりまで繰り返す
        Line Input #fileNumber, lineData
        Debug.Print lineData ' 読み込んだ行をイミディエイトウィンドウに出力
    Loop
    Close fileNumber ' ファイルを閉じる
End Sub

・Line Input #fileNumber で1行ずつデータを読み込みます。

・Debug.Print で読み込んだ内容を確認できます(ExcelのVBAエディタ内の「イミディエイトウィンドウ」に表示)

空行をスキップして処理を行うコード例

Option Explicit

Sub ReadAndSkipEmptyLines()
    Dim filePath As String
    Dim fileNumber As Integer
    Dim lineData As String

    filePath = "C:\Users\User\Desktop\新しいフォルダー\テキスト .txt"
    fileNumber = FreeFile

    Open filePath For Input As fileNumber
    Do Until EOF(fileNumber)
        Line Input #fileNumber, lineData
        If Trim(lineData) <> "" Then ' 空行をスキップ
            Debug.Print lineData ' 必要な処理をここで実行
        End If
    Loop
    Close fileNumber
End Sub

Trim(lineData)で両端の空白を削除し、空行を正確に判定します。

ファイルの存在確認を事前に行い、エラーを未然に防ぎます。

Option Explicit

Sub CheckFileBeforeRead()
    Dim filePath As String

    filePath = "C:\Users\User\Desktop\新しいフォルダー\テキスト .txt"
    If Dir(filePath) = "" Then
        MsgBox "指定されたファイルが見つかりません: " & filePath, vbExclamation
        Exit Sub
    End If
    ' ファイル処理を実行
    Call ReadTextFileLineByLine
End Sub

 

「VBAスキルを証明できれば、社内評価アップにつながるかもしれません