引数リスト

 プロシージャで処理を行うのに必要なデータを、プロシージャを呼び出す側からもらうためには引数を指定します。その引数を「仮引数」と呼びます。仮引数は実際のデータがあるのではなく、あると仮定して処理を記述することができます。

 一方、プロシージャを呼び出す側は仮引数が定義されている場合は、仮引数に応じたデータを渡す必要があります。そのデータを「実引数」と呼びます。実引数は処理してもらいたい実際のデータを指定します。

 プロシージャを定義するときには引数を指定しないか、指定するかを決めることができます。また、指定する場合、複数指定することができます。複数指定するときはカンマで区切って指定します。

仮引数リストの書式
Byval 変数名 As データ型
Byval 変数名 As データ型,  Byval 変数名 As データ型,

 これから、引数を指定するいくつかのパターンを見てみましょう。

■ 仮引数を指定しない

 プロシージャを定義するときに、プロシージャを呼び出す側からデータをもらう必要のない場合は、仮引数リストは指定しません。

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 SubTest1

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Module Module1
  2.  '入力したデータを表示する関数
  3.  Sub ShowData()
  4.   'データを入力
  5.   Console.Write("表示したいデータを入力してください:")
  6.   Dim inputdata As String = Console.ReadLine()
  7.   '入力したデータを表示
  8.   Console.WriteLine("入力したデータは「{0}」です。", inputdata)
  9.  End Sub
  10.  Sub Main()
  11.   '関数の呼び出し
  12.   ShowData()
  13.   Console.ReadLine()
  14.  End Sub
  15. End Module

○ フローチャート


○ 実行結果

表示したいデータを入力してください:りんご
入力したデータは「りんご」です。

○ 解説

 4~11行目でSubプロシージャを定義しています。このプロシージャは呼び出されると、キーボードからデータの入力をして、入力したデータを表示します。

 13~17行目ではMainプロシージャを定義しています。このプロシージャはプロジェクトを作成した時に既にできていました。VBでは実行時にこの関数を呼び出します。そのため、Mainプロシージャ内に記述されている処理が順番に実行されます。

 15行目ではShowDataプロシージャを呼び出しています。ShowDataプロシージャは仮引数が指定されていないので、呼び出す側でも実引数を指定しません。指定するとエラーになります。

■ 仮引数を1つ指定する

 プロシージャの定義で1つ仮引数を指定する方法と、それを呼び出す方法を確認しましょう。

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 SubTest2

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Module Module1
  2.  '指定されたデータを表示する関数
  3.  Sub ShowData(ByVal data As String)
  4.   '指定したデータを表示
  5.   Console.WriteLine("入力したデータは「{0}」です。", data)
  6.  End Sub
  7.  Sub Main()
  8.   'データを入力
  9.   Console.Write("表示したいデータを入力してください:")
  10.   Dim inputdata As String = Console.ReadLine()
  11.   '関数の呼び出し
  12.   ShowData(inputdata)
  13.   Console.ReadLine()
  14.  End Sub
  15. End Module

○ フローチャート


○ 実行結果

表示したいデータを入力してください:みかん
指定されたデータは「みかん」です。

○ 解説

 4~7行目でSubプロシージャを定義しています。このプロシージャは仮引数を一つ用意しています。文字列型の変数が宣言されているので、文字列を受け取る前提で処理が行われます。6行目で渡された文字列を表示しています。

 9~17行目ではMainプロシージャを定義しています。SubTest1プロジェクトと比べると、今回はMainプロシージャでキーボード入力をしています。15行目でShowData関数を呼び出していますが、その時にキーボードから入力したデータを実引数に指定しています。文字列を実引数に指定しないとエラーになります。

■ 仮引数を複数指定する

 プロシージャの定義で複数仮引数を指定する方法と、それを呼び出す方法を確認しましょう。今回は2つの引数を扱います。

○ プロジェクト

 次のようにプロジェクトを作成してください。実行するとコンソールに結果が表示されます。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 SubTest3

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Module Module1
  2.  '指定されたデータを指定回数表示する関数
  3.  Sub ShowData(ByVal data As String, ByVal count As Integer)
  4.   '指定した回数ループ
  5.   For i As Integer = 0 To count - 1
  6.    '指定したデータを表示
  7.    Console.WriteLine("入力したデータは「{0}」です。", data)
  8.   Next
  9.  End Sub
  10.  Sub Main()
  11.   'データを入力
  12.   Console.Write("表示したいデータを入力してください:")
  13.   Dim inputdata As String = Console.ReadLine()
  14.   '回数を入力
  15.   Console.Write("表示したい回数を入力してください:")
  16.   Dim countdata = Int32.Parse(Console.ReadLine())
  17.   '関数の呼び出し
  18.   ShowData(inputdata, countdata)
  19.   Console.ReadLine()
  20.  End Sub
  21. End Module

○ フローチャート


○ 実行結果

表示したいデータを入力してください:ばなな
表示したい回数を入力してください:5
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。

○ 解説

 4~10行目でプロシージャを定義しています。このプロシージャは仮引数を二つ用意しています。文字列と整数値を受け取ります。6行目から受け取った整数値分だけ繰り返して、受け取った文字列を表示します。

 今回はMainプロシージャで表示したい文字列と、繰り返したい回数を入力しています。ShowDataプロシージャを呼び出す時に表示したいデータと、表示する回数を渡しています。この二つを渡さないとエラーになります。

前へ   次へ