VBAのInput関数について解説しています。
Input関数は、VBA関数の中で制御・入出力関数に分類される関数です。
Input関数は、シーケンシャル入力モード (Input) またはバイナリ モード (Binary) で開いたファイルから指定した文字数の文字列を読み込み、文字列型 (String) の値を返します。
構文 | Input(number, [#]filenumber) | |
---|---|---|
引数 | 省略 | 説明 |
number | × | ファイルから読み込む文字数を表す任意の数式を指定します。 |
truepart | × | 任意のファイル番号を指定します。 |
通常、Input 関数で読み込んだデータは、Print # ステートメントまたは Put ステートメントを使用してファイルに書き込みます。Input 関数は、シーケンシャル入力モードまたはバイナリ モードで開いたファイルに対してのみ使用します。
Input # ステートメントと異なり、Input 関数は読み込んだすべての文字を返します。カンマ (,)、キャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、ダブル クォーテーション (")、先頭のスペースも返します。
バイナリ モードで開いたファイルに対して、Input 関数を使用して EOF 関数が真 (True) を返すまでファイルを読み込もうとすると、エラーが発生します。Input 関数を使用してバイナリ ファイルを読み込む場合は、EOF 関数の代わりに LOF 関数および Loc 関数を使用します。EOF 関数を使用する場合は、Get ステートメントを使用します。
テキスト ファイルに含まれているバイト データを読み込むには、InputB 関数を使用します。InputB 関数では、引数 number には取得する文字数ではなく、取得するバイト数を指定します。
次の例は、Input 関数を使って、ファイルから 1 文字ずつ読み込んでいます。読み込んだ文字はイミディエイト ウィンドウに表示されます。ファイル TESTFILE は、複数行のデータを含むテキスト ファイルと仮定します。
Sub Sample
Dim MyChar
Open "TESTFILE" For Input As #1 ' ファイルを開きます。
Do While Not EOF(1) ' ファイルの終端までループを繰り返します。
MyChar = Input(1, #1) ' 1 文字のデータを読み込みます。
Debug.Print MyChar ' イミディエイト ウィンドウに表示します。
Loop
Close #1 ' ファイルを閉じます。
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
関数名 | 内容 |
---|---|
Choose | 数値で指定した式の値を返します。 |
IIf | 式の結果により2つの引数のうち1つを返します。 |
Input | ファイルから指定した文字数の文字列を読みこんで返します。 |
InputB | ファイルから指定したバイト数のデータを読み込んで返します。 |
InputBox | ダイアログボックスにメッセージを表示しテキストボックスに入力した値を返します。 |
MsgBox | ダイアログボックスにメッセージを表示します。 |
Partition | 指定した数値の範囲が属する文字列を返します。 |
Spc | 指定した数のスペースを挿入します。 |
Switch | 条件式を評価し、真(True)の場合に式を返します。 |
TypeName | 変数に関する情報を返します。 |
↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。