Input # ステートメント
Open ステートメント をシーケンシャル入力モード(Input) または バイナリモード(Binary)で、開いたファイルのデータをカンマ(,)で区切られた単位で読み込みます。入力データ内のダブルクォーテーション(”)は無視されます。
【構文】
Input #filenumber, varlist, …
引数・戻り値
- filenumber ・・・ Open ステートメント で、割り当てられたファイル番号を指定します。
- varlist ・・・ ファイルから読み込まれた値(カンマで区切られた内容)を格納する変数を指定します。複数指定する場合は、カンマ(,)で区切って指定します(ファイル内のデータ項目の個数、順番と一致させます)。
- filenumber ・・・ Open ステートメント で、割り当てられたファイル番号を指定します。
- varlist ・・・ ファイルから読み込まれた値(カンマで区切られた内容)を格納する変数を指定します。複数指定する場合は、カンマ(,)で区切って指定します(ファイル内のデータ項目の個数、順番と一致させます)。
Input # ステートメントで読み取られたデータは、通常、Write # ステートメントでファイルに書き込まれます。
Input # ステートメント 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
Sub Sample_Input() 'カンマ区切りのデータを読み込む(Input モード・Input # ステートメント) Dim FileName As String Dim FNum As Integer Dim buf(2) Dim str As String Dim i As Integer FileName = "C:\Documents\mydata\file01.txt" FNum = FreeFile 'ファイル番号取得 If Dir(FileName) = "" Then MsgBox "ファイルが見つかりませんでした" Exit Sub End If 'ファイルを開く(Input モード) Open FileName For Input As #FNum Do Until EOF(FNum) 'データをカンマで区切られた単位ごとに読み込む Input #FNum, buf(0), buf(1), buf(2) str = str & Join(buf, vbTab) & vbCrLf Loop 'ファイルを閉じる Close #FNum '内容を表示 MsgBox str End Sub |
実行結果
読み込むテキストファイルの内容
サンプルVBAソース を実行