VB6・VBA関数メモ:Input #ステートメント

Input #ステートメントについてメモしておきます。

このステートメントはファイルからデータの読み込みの際に使用します。

同じファイル読み込みのステートメントにLine Input#ステートメントがありますが、
こちらはWrite #ステートメントで書き込まれたデータを読み込むことを想定しているらしく
カンマ(,)区切りのデータを分解したり文字列からダブルクォーテーション(")等を除外して取得します。

単純な文字列データを読み込むのであればLine Input#ステートメントを使った方が良さそうです。


概要

Input #FileNmber, VarList
機能 ファイルから1行ずつデータを読み込み、変数にデータを取得する。
引数 FileNmber Openステートメントで指定したファイル番号
VarList データを格納する変数
カンマ(,)区切りで複数指定可能


使用例

説明 記述例 出力
ファイルからデータを読み込み
(Sumple.txt)
"123"
"abc"
"あいう"
Dim str As String
Dim n   As Integer

n = FreeFile
Open "Sumple.txt" For Input As #n

Do Until EOF(n)
    Input #n, str
    Debug.Print str
Loop

Close #n
123
abc
あいう
ファイルからカンマ区切りの
データを読み込み
(Sumple.txt)
"123","abc","あいう"
"234","bcd","アイウ"
"345","cde","アイウ"
Dim str1 As String
Dim str2 As String
Dim str3 As String
Dim n   As Integer

n = FreeFile
Open "Sumple.txt" For Input As #n

Do Until EOF(n)
    Input #n, str1, str2, str3
    Debug.Print "1:" & str1
    Debug.Print "2:" & str2
    Debug.Print "3:" & str3
    Debug.Print
Loop

Close #n
1:123
2:abc
3:あいう

1:234
2:bcd
3:アイウ

1:345
2:cde
3:アイウ


動作検証

説明 記述例 出力
カンマ区切りのデータの場合
変数を1つだけ指定すると
1つずつデータを取得する
(Sumple.txt)
"123","abc","あいう"
"234","bcd","アイウ"
"345","cde","アイウ"
Dim str As String
Dim n   As Integer

n = FreeFile
Open "Sumple.txt" For Input As #n

Do Until EOF(n)
    Input #n, str
    Debug.Print str
Loop

Close #n
123
abc
あいう
234
bcd
アイウ
345
cde
アイウ
Input/Binaryモードで開いた
ファイルのみ使用可能
Dim n   As Integer
n = FreeFile
Open "Sumple.txt" For Input As #n
Input #n, str
Close #n
Dim n   As Integer
n = FreeFile
Open "Sumple.txt" For Binary As #n
Input #n, str
Close #n
Dim n   As Integer
n = FreeFile
Open "Sumple.txt" For Output As #n
Input #n, str
Close #n
エラー
Dim n   As Integer
n = FreeFile
Open "Sumple.txt" For Append As #n
Input #n, str
Close #n
エラー
Dim n   As Integer
n = FreeFile
Open "Sumple.txt" For Random As #n
Input #n, str
Close #n
エラー


コメント
コメントする








    
この記事のトラックバックURL
トラックバック