プロシージャで処理を行うのに必要なデータを、プロシージャを呼び出す側からもらうためには引数を指定します。その引数を「仮引数」と呼びます。仮引数は実際のデータがあるのではなく、あると仮定して処理を記述することができます。
一方、プロシージャを呼び出す側は仮引数が定義されている場合は、仮引数に応じたデータを渡す必要があります。そのデータを「実引数」と呼びます。実引数は処理してもらいたい実際のデータを指定します。
プロシージャを定義するときには引数を指定しないか、指定するかを決めることができます。また、指定する場合、複数指定することができます。複数指定するときはカンマで区切って指定します。
仮引数リストの書式 |
---|
Byval 変数名 As データ型 Byval 変数名 As データ型, Byval 変数名 As データ型, … |
これから、引数を指定するいくつかのパターンを見てみましょう。
プロシージャを定義するときに、プロシージャを呼び出す側からデータをもらう必要のない場合は、仮引数リストは指定しません。
○ プロジェクト
次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | SubTest1 |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
表示したいデータを入力してください:りんご
入力したデータは「りんご」です。
○ 解説
4~11行目でSubプロシージャを定義しています。このプロシージャは呼び出されると、キーボードからデータの入力をして、入力したデータを表示します。
13~17行目ではMainプロシージャを定義しています。このプロシージャはプロジェクトを作成した時に既にできていました。VBでは実行時にこの関数を呼び出します。そのため、Mainプロシージャ内に記述されている処理が順番に実行されます。
15行目ではShowDataプロシージャを呼び出しています。ShowDataプロシージャは仮引数が指定されていないので、呼び出す側でも実引数を指定しません。指定するとエラーになります。
プロシージャの定義で1つ仮引数を指定する方法と、それを呼び出す方法を確認しましょう。
○ プロジェクト
次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | SubTest2 |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
表示したいデータを入力してください:みかん
指定されたデータは「みかん」です。
○ 解説
4~7行目でSubプロシージャを定義しています。このプロシージャは仮引数を一つ用意しています。文字列型の変数が宣言されているので、文字列を受け取る前提で処理が行われます。6行目で渡された文字列を表示しています。
9~17行目ではMainプロシージャを定義しています。SubTest1プロジェクトと比べると、今回はMainプロシージャでキーボード入力をしています。15行目でShowData関数を呼び出していますが、その時にキーボードから入力したデータを実引数に指定しています。文字列を実引数に指定しないとエラーになります。
プロシージャの定義で複数仮引数を指定する方法と、それを呼び出す方法を確認しましょう。今回は2つの引数を扱います。
○ プロジェクト
次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | SubTest3 |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
表示したいデータを入力してください:ばなな
表示したい回数を入力してください:5
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
○ 解説
4~10行目でプロシージャを定義しています。このプロシージャは仮引数を二つ用意しています。文字列と整数値を受け取ります。6行目から受け取った整数値分だけ繰り返して、受け取った文字列を表示します。
今回はMainプロシージャで表示したい文字列と、繰り返したい回数を入力しています。ShowDataプロシージャを呼び出す時に表示したいデータと、表示する回数を渡しています。この二つを渡さないとエラーになります。