ExcelのVBAマクロでテキストファイルを読み込む

ExcelのVBAマクロでテキストファイルを読み込むコードを紹介します。

概要

テキストファイルを読み込むには、Open関数でファイルを開き、Input関数で行を読み出します。ファイルの読み込みが完了した後に、Close関数でファイルを閉じます。

実施例

Excelシートにフォームコントロールのボタンを配置します。

ExcelのVBAマクロでテキストファイルを読み込む:画像1

コード

ボタンクリックの際に実行されるマクロに下記のコードを記述します。

Sub Button1_Click()

Dim result As Long
Dim dialog As FileDialog

Set dialog = Application.FileDialog(msoFileDialogOpen)
dialog.ButtonName = "開く"
result = dialog.Show

If result = -1 Then
    Cells(1, 1).Value = "ファイルが選択されました。" & dialog.SelectedItems.Item(1)
   
    Open dialog.SelectedItems.Item(1) For Input As #1
    
    Dim inputstr As String
    Dim counter As Integer
    counter = 6
    Do While Not EOF(1)
      Input #1, inputstr
      Cells(counter, 2).Value = inputstr
      counter = counter + 1
    Loop
  
    Close #1
End If

End Sub

ExcelのVBAマクロでテキストファイルを読み込む:画像2

解説

下記のコードによるファイル選択ダイアログを表示します。Application.FileDialog メソッドによりFileDialogオブジェクトを作成します。FileDialog メソッドの引数にダイアログの種類を指定します。今回はファイルを開くダイアログのため、msoFileDialogOpen を与えます。
作成されたFileDialogオブジェクトは dialog 変数に代入します。ButtonNameプロパティを設定しボタンのキャプションを設定します。Showメソッドを呼び出しダイアログを表示します。Showメソッドの戻り値をresult変数に代入します。Showメソッドの戻り値はファイルが開かれた場合は"-1"を返し、キャンセルされた場合は"0"を返します。

Dim dialog As FileDialog

Set dialog = Application.FileDialog(msoFileDialogOpen)
dialog.ButtonName = "開く"
result = dialog.Show


ファイルが開かれた場合は、resultに -1 が代入されるため、Ifブロック内のコードが実行されます。
A1セルに「ファイルが選択されました。」の文字列と開かれたファイルのパスを表示します。
Open関数を実行しファイル選択ダイアログで選択されたファイルを開きます。ファイル番号は1番とします。ファイルが開かれたら、Do While ループによりInput関数を呼び出し、1行ずつテキストファイルを読み出します。読み込まれた文字列は 6行目2列目のセルから順番に表示されます。

If result = -1 Then
    Cells(1, 1).Value = "ファイルが選択されました。" & dialog.SelectedItems.Item(1)
   
    Open dialog.SelectedItems.Item(1) For Input As #1
    
    Dim inputstr As String
    Dim counter As Integer
    counter = 6
    Do While Not EOF(1)
      Input #1, inputstr
      Cells(counter, 2).Value = inputstr
      counter = counter + 1
    Loop
  
    Close #1
End If

実行結果

読み込み用のテキストファイルとして下記のテキストファイルを準備します。

text.txt
ぺんぎんクッキー
らくだキャンディー
くじらケーキ
ふくろうサブレ
かもしかキャラメル


Excelシートに配置したボタンをクリックします。
ExcelのVBAマクロでテキストファイルを読み込む:画像3

ファイルを開くダイアログボックスが表示されます。
ExcelのVBAマクロでテキストファイルを読み込む:画像4

先に作成したテキストファイルを選択して開きます。
ExcelのVBAマクロでテキストファイルを読み込む:画像5

テキストファイルの内容が読み込まれ、6行目から順に表示されることが確認できます。 また、A1セルには開いたテキストファイルのパスが表示されることも確認できます。

ExcelのVBAマクロでテキストファイルを読み込む:画像6

VBAを利用してテキストファイルを開いて読み込むことができました。

AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2018-08-31
改訂日: 2024-12-21
Copyright © 1995–2025 iPentec all rights reserverd.