
ExcelVBAを使用して、外部のテキストファイルを開き、その内容を読み込んでExcelシートに書き込んだり、データ処理に利用することができます。
他のシステムから出力されたテキストデータをExcelで分析したり、自動的にデータを取り込んで処理できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
以下のようなシーンで利用されます。
1.テキスト形式(CSVやログファイルなど)で保存されたデータをExcelで扱いたい。
2.複数のテキストファイルからデータを自動で取り込んで、集計や分析を行いたい。
3.外部のシステムやアプリケーションから出力されたテキストデータをExcelにインポートして整理したい。
Openステートメントを使用してテキストファイルを開き、ファイルの内容を読み取ります。読み取った内容はExcelのセルに書き込めます。
1.ファイルが存在しない場合や読み取り権限がない場合、エラーが発生します。そのため、エラーハンドリングを行うことが重要です。
2.大きなファイルを扱う際はメモリに負荷がかかることがあるため、必要に応じて読み込み方法を工夫します。
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で自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。