関数・メソッド

引数を任意の数だけ渡せるプロシージャを作る【ParamArrayキーワード】【ExcelVBA】

ParamArrayキーワード

Sub/Functionプロシージャを作る際に引数の数を不定にしたいときは、
ParamArrayキーワードを使うことで引数の数を可変にすることができます。

構文
Sub | Function name([ParamArray] varname[( )])
 [statements]
End Sub

ParamArrayその引数がバリアント型の要素を持つ省略可能な配列であることを示します。
ParamArray を使うと、任意の数の引数を渡すことができます。省略可。
varname引数を表す変数名を指定します。必須。

ParamArrayキーワードを使ったサンプルコード

Sub Sample()
  Debug.Print Plus(1, 10, 100, 1000) '数字の数だけ処理される(この場合4回)

End Sub

Function Plus(ParamArray Data()) As Double
 
  Dim i As Long
  '足し算の計算式(4回繰り返す)
  For i = LBound(Data) To UBound(Data)
    Plus = Plus + Data(i)
  Next
    
End Function

注意点

  • ByVal/ByRef/Optional を使用した場合、ParamArray は併用できません。
    Function Plus(Optional arg, ParamArray Data()) 'エラーになります
    
  • 引数 arglist の最後の引数でのみ使用できます。
    Function Plus(ParamArray Data(), arg) 'エラーになります
    

関連記事

コメント

タイトルとURLをコピーしました