Share via


方法 : 不特定数のパラメータを受け取るプロシージャを呼び出す

更新 : 2007 年 11 月

プロシージャのパラメータ リストには、最後のエントリとしてパラメータ配列を宣言できます。これにより、そのパラメータに対して単一の値だけでなく、不特定数の値を渡せるようになります。

詳細については、「パラメータ配列」を参照してください。

パラメータ配列を使用してプロシージャを呼び出し、対応する引数を省略するには

  1. 通常の方法で、プロシージャ呼び出しを記述します。パラメータ配列は最後の引数として指定する必要があります。

  2. 最後から 2 番目の引数を指定して、引数リストを終了します。パラメータ配列は省略できます。パラメータ配列よりも前にあるすべてのパラメータは、必須であることが必要です。

    または

    パラメータ配列の引数として、キーワード Nothing を指定します。

  3. Visual Basic は、このパラメータ配列に対して空の 1 次元配列をプロシージャに渡します。

パラメータ配列を使ってプロシージャを呼び出し、引数のリストを指定するには

  1. 通常の方法で、プロシージャ呼び出しを記述します。パラメータ配列は最後の引数として指定する必要があります。

  2. パラメータ配列に格納する引数を、任意の数だけコンマで区切って指定します。各引数のデータ型は、暗黙的に ParamArray 要素型に変換できる必要があります。

  3. Visual Basic は、指定されたすべての値を格納する 1 次元配列をプロシージャに渡します。

パラメータ配列を使ってプロシージャを呼び出し、引数の配列を指定するには

  1. 通常の方法で、プロシージャ呼び出しを記述します。パラメータ配列は最後の引数として指定する必要があります。

  2. パラメータ配列に対して、パラメータ配列の要素型と同じ要素型を持つ 1 次元配列を指定します。

  3. 指定された配列を、Visual Basic がプロシージャに渡します。

使用例

方法 : 不特定数のパラメータを受け取るプロシージャを定義する」で定義した studentScores プロシージャを呼び出す方法は、一般に次の例のようになります。

Call studentScores("George")


...


Call studentScores("Anne", "10", "26", "32", "15", "22", "24", "16")
Call studentScores("Mary", "High", "Low", "Average", "High")
Dim JohnScores() As String = {"35", "Absent", "21", "30"}
Call studentScores("John", JohnScores)

最初の呼び出しでは、パラメータ配列が完全に省略され、最初の引数 (必須) だけが指定されています。 studentScores プロシージャは、この呼び出しが空の配列を渡しているものとして処理します。

2 番目と 3 番目の呼び出しには、長さの異なる引数リストがパラメータ配列に指定されています。このようなリストは、それぞれ値の配列として渡されます。

4 番目の呼び出しは、パラメータ配列に配列を渡しています。

参照

概念

プロシージャのパラメータと引数

引数の値渡しおよび参照渡し

位置と名前による引数渡し

省略可能なパラメータ

プロシージャのオーバーロード

Visual Basic における型チェック

参照

Optional (Visual Basic)

ParamArray

ByVal

UBound 関数 (Visual Basic)