
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.ファイルのオープン
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スキルを証明できれば、社内評価アップにつながるかもしれません