任意数の引数を受け取るプロシージャを作るには ParamArray キーワードを使います。
ParamArray キーワードは引数を1次元配列として受け取ることを意味します。
ただし、引数の省略を可能とする Optional キーワードと同時に使うことはできません。
以下の例は、任意数の String 型引数を渡して、メッセージボックスで列挙する例です。
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button9.Click
Call EnumArgs("apple", "orange", "peach")
End Sub
Private Sub EnumArgs(ByVal ParamArray args() As String)
Dim strOut As String
Dim intIdx As Integer
If args.Length = 0 Then
strOut = "引数はありません。"
Else
strOut = "引数を列挙します。" & ControlChars.CrLf
For intIdx = 0 To args.Length - 1
strOut += (args(intIdx) + ControlChars.CrLf)
Next intIdx
End If
MessageBox.Show(strOut, "ParamArrayテスト", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
上記の例を実行すると下図(左)のようなメッセージボックスが表示されます。
引数を省略した場合は下図(右)のようなメッセージボックスが表示されます。