
ExcelVBAを使用して、外部のテキストファイルを開き、その内容を読み込んでExcelシートに書き込んだり、データ処理に利用することができます。
他のシステムから出力されたテキストデータをExcelで分析したり、自動的にデータを取り込んで処理できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBAで外部テキストファイルを扱う用途とメリット
以下のようなシーンで利用されます。
1.テキスト形式(CSVやログファイルなど)で保存されたデータをExcelで扱いたい。
2.複数のテキストファイルからデータを自動で取り込んで、集計や分析を行いたい。
3.外部のシステムやアプリケーションから出力されたテキストデータをExcelにインポートして整理したい。
VBAでテキストファイルを読み込み→Excelシートに書き込む手順と注意点
Openステートメントを使用してテキストファイルを開き、ファイルの内容を読み取ります。読み取った内容はExcelのセルに書き込めます。
1.ファイルが存在しない場合や読み取り権限がない場合、エラーが発生します。そのため、エラーハンドリングを行うことが重要です。
2.大きなファイルを扱う際はメモリに負荷がかかることがあるため、必要に応じて読み込み方法を工夫します。
Excel VBA テキストファイル読み込みのサンプルコード【実践編】
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
- Option Explicit
- Sub OpenTextFile()
- Dim filePath As String
- Dim fileContent As String
- Dim fileNumber As Integer
- Dim line As String
- Dim i As Long
- ' 開きたいテキストファイルのパスを指定
- filePath = "C:\Users\User\Desktop\新しいフォルダー\sample.txt"
- ' ファイル番号を取得
- fileNumber = FreeFile
- ' テキストファイルを開く(読み取り専用モード)
- Open filePath For Input As fileNumber
- i = 1 ' 行番号の初期化
- ' ファイルの中身を1行ずつ読み込み
- Do Until EOF(fileNumber)
- Line Input #fileNumber, line ' 1行ずつ読み込む
- Cells(i, 1).Value = line ' 読み込んだ内容をセルに書き込む
- i = i + 1 ' 次の行へ
- Loop
- ' ファイルを閉じる
- Close fileNumber
- MsgBox "テキストファイルの読み込みが完了しました!"
- End Sub
1. filePath = "C:\Example\sample.txt"
読み込むテキストファイルのパスを指定します。これをユーザーが開きたいファイルに変更します。
2. fileNumber = FreeFile
使用可能なファイル番号を取得します。これはファイルを開く際に必要です。
3. Open filePath For Input As fileNumber
指定したファイルを読み取り専用モードで開きます。
4. Line Input #fileNumber, line
ファイルから1行ずつテキストを読み取ります。
5. Cells(i, 1).Value = line
読み込んだ行をExcelのシートのセルに書き込みます(1列目)。
6. Close fileNumber
ファイルを閉じます。
ExcelVBAを使ってテキストファイルを開くことで、他のシステムやアプリケーションから出力されたデータを簡単にExcelに取り込み、処理や分析に活用できます。ファイルの取り扱い時にはエラーハンドリングやファイルパスの指定に注意しましょう。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。
