
Excel VBAでテキストファイルを1行ずつ読み込む基本的な方法を徹底解説!使い方、注意点やサンプルコードを紹介します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
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
ファイルを閉じます。
・ファイルの存在やアクセス権限に注意してください。
・テキストファイルのフォーマットによっては、データの解釈に問題が生じる可能性があります。
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エディタ内の「イミディエイトウィンドウ」に表示)
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
空行をスキップして処理を行うコード例
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
「Excel VBAで自動化するコードのベースが習得できる解説書」 Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。