ExcelVBA 外部テキストファイルを読み込んでExcelシートに書き込む方法

 

ExcelVBAを使用して、外部のテキストファイルを開き、その内容を読み込んでExcelシートに書き込んだり、データ処理に利用することができます。

 

他のシステムから出力されたテキストデータをExcelで分析したり、自動的にデータを取り込んで処理できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

Excel VBA 外部テキストファイルの利用

以下のようなシーンで利用されます。

1.テキスト形式(CSVやログファイルなど)で保存されたデータをExcelで扱いたい。

2.複数のテキストファイルからデータを自動で取り込んで、集計や分析を行いたい。

3.外部のシステムやアプリケーションから出力されたテキストデータをExcelにインポートして整理したい。

使い方

Openステートメントを使用してテキストファイルを開き、ファイルの内容を読み取ります。読み取った内容はExcelのセルに書き込めます。

 

ポイント

1.ファイルが存在しない場合や読み取り権限がない場合、エラーが発生します。そのため、エラーハンドリングを行うことが重要です。

2.大きなファイルを扱う際はメモリに負荷がかかることがあるため、必要に応じて読み込み方法を工夫します。

 

Excel VBA 外部テキストファイルのサンプルコード
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エキスパート」をご確認ください。