Excel VBA:テキストファイルの読込み|Open For Input As

Open For Input Asを使用しテキストファイのデータを読込むExcel VBAです。

Homeに戻る > Excel ファイル操作のTipsへ

テキストファイルは、多くのアプリで使用できる形式なのでよく使われます。

Excelでもリボンの[ファイル]~[開く]~[参照]~[テキストファイル]で読込むことが可能です。

VBAからでも簡単に読込みできるので、その使い方を掲載します。

読込みは、OpenステートメントとInputモードを使います。

OpenステートメントとOutputモードの構文

Open PathName For Input [Lock] As #FileNumber

  • PathName:(省略不可)フルパスのファイル名を指定します。
  • Lock:(省略可)他のプロセスからの操作をキーワードで指定します。キーワードは、Shared・Lock Read・Lock Write・Lock Read Writeです。
  • FileNumber:(省略不可)1 ~ 511 の範囲で任意のファイル番号を指定します。使用可能なファイル番号を取得するには、FreeFile関数を使用します。

文字列を読込むには Line Inputステートメントを使います。

Line Input #ステートメントの構文

Print #FileNumber,VarName

  • FileNumber:(省略不可)Openステートメントで指定したファイル番号を指定します。
  • VarName:(省略不可)読込んだデータを格納する変数を指定します。変数はバリアント型か文字列型で宣言指定します。

ファイルを閉じるにはCloseステートメントを使います。

Closeステートメントの構文

Close [#FileNumber1] [, #FileNumber2 …]

  • FileNumbert:(省略可)Openステートメントで指定したファイル番号を指定します。

関連する「テキストファイルへ書き込み|Open For Output As」を掲載していますので参照してください。





テキストファイルを読込むExcel VBA


ExcelシートとVBA入力画面

シートにコマンドボタンを配置します。



ExTextReadプロシージャ、CommandButton1のクリックイベントを入力します。


VBAコードの解説

ExTextWriteプロシージャ
  1. ファイル番号を格納する変数を宣言します。
  2. 読込んだデータを格納する、文字列型の変数を宣言します。
  3. Do Loopで使用する、カウント用の変数を宣言します。
  4. FreeFile関数で使用可能なファイル番号を取得し、変数に代入します。
  5. OpenステートメントとInputモードでファイルを開きます。
  6. Do Loopでファイル終りまでループします。ファイルの終わりはEOFで判定します。
  7. Line Input #ステートメントで一行単位で読みます。
  8. Cellsでセル位置を指定し、読込んだデータを表示します。
  9. Closeステートメントでファイルを閉じます。
CommandButton1のクリックイベント
  • ExTextReadプロシージャを呼び出し実行します。

ExcelシートのVBAコード

Option Explicit

Private Sub ExTextRead()
    Dim fno As Integer
    Dim s1 As String
    Dim i As Integer
    
    i = 0
    fno = FreeFile
    Open "c:\test1\test.txt" For Input As fno
    Do Until EOF(fno)
        Line Input #fno, s1
        Cells(8 + i, 2) = s1
        i = i + 1
    Loop
    Close fno
End Sub

Private Sub CommandButton1_Click()
    ExTextRead
End Sub

実行結果 Excel画面

読込みボタンをクリックすると、読込んだ結果をB8から表示していきます。


Excel Tipsメニューへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved