【VBA】Line Inputでファイルを一行ずつ読み込む方法

『Line Input #』は”ファイルから1行を読み込む”ステートメントです。

このステートメントについて、ちょこっと解説します。

スポンサーリンク



Line Input #の記述方法

『Line Input #』の記述の仕方は下の通りです。

[Line Input #ファイル番号, 変数名]

・ファイル番号:任意のファイル番号を指定する

・変数名:読み込んだ文字列を代入する変数名を指定する

 

ざっくりとした使い方の説明は下の通りです。

Openステートメントで対象のファイルを開き、ファイル番号を指定

→Line Inputで「指定したファイル番号」と「変数名」を指定し、読込処理を行う

 

具体的な説明は下の参考コードで説明します。

 

Line Input #の参考コード

ここで使うデータは下の「テキストファイル」になります。

まずここでは上の「全てデータ(空白を含めた5行)を”1行ずつ”読み込む」までを順序だってやっていきます。

 

テキストファイルの1行目を読み込む

下はテキストファイルの1行目のデータ(11111)を読み込むコードです。

1行ずつ読み込む際にはLine Input #ステートメントで読み込みます。

3行目:「Open」ステートメントでテキストファイルを開く。

※ファイルの場所の書き方が分からない場合は「対象ファイルを右クリック」→「プロパティ」→「”場所”欄」をコピーすればOK

4行目:「Line Input #」ステートメントで行全体を読み込み、変数に代入する。

[Line Input #(任意のファイル番号) , (読み込んだデータを代入する変数)]

 

テキストファイルのデータを1行目ずつ全てを読み込む

下は「対象ファイル(sample.txt)のデータを一行ずつ全ての行を読み込む」処理を行うコードです。

 

3行目:開く対象のファイルの場所を指定+ファイル番号を指定(ここでは”1”と指定していしている)

※ファイルの場所の書き方が分からない場合は「対象ファイルを右クリック」→「プロパティ」→「”場所”欄」をコピーすればOK

 

4行目:Do~Loopで繰り返す条件を設定

EOF(ファイル番号):現在位置がファイルの末尾に達したときに”True”を返す

Until:”true”になるまでDo~Loopの間の処理を繰り返す

※Do Loopが分からない人は『Do Loopの使い方』を参考にする

 

5行目:読み込み処理

7行目:ここまでがループ範囲

8行目:3行目で開いたファイルを閉じる(閉じるときはファイル番号で指定する)

 

Line Inputで重要な部分は上でいえば、3行目と5行目です。

 

3行目でLine Inputの『#ファイル番号』には任意の数字を指定します。

Line Inputを使う際には「Open」ステートメントを使って対象のファイルを開く必要があります。

その際にはOSに「これからはここで開いたファイルを〇番で表すよ」と伝える必要があります。

上のコードの場合は”1”と指定しています(ほとんどの場合、1つのファイルしか開かないので#1でOK)。

 

そして、5行目で3行目で指定した「ファイル番号(1)」と読み込んだデータを代入する「変数名(str)」を指定しています。

 

スポンサーリンク

コメント