パラメーター配列で引数を配列として受け取る【ExcelVBA】
ParamArray 配列変数名 As Variant でVariant型で受け取る
最後の引数のみに設定することが可能で、常に参照渡し、下限値は0で固定という特徴がある
引数として渡したい数が不明の場合に便利で、関数に使用しやすい(個人的)
一例としてセル範囲を引数にして平均を求めるっぽいものを作成
※あくまで配列として受け取るサンプルで実際のAverage関数等とは違います
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Public Function Test(ParamArray 配列() As Variant)
'xは整数型で宣言
Dim x As Long
'要素数を整数型で宣言
Dim 要素数 As Long
'セルという変数をRange型で宣言
Dim セル As Range
'xを配列の下限から上限まで繰り返す
For x = LBound(配列) To UBound(配列)
'セル範囲が1つでなければ
If 配列(x).Count <> 1 Then
For Each セル In 配列(x)
Test = Test + セル.Value
要素数 = 要素数 + 1
Next
Else
'配列の中身を順番に足す
Test = Test + 配列(x).Value
要素数 = 要素数 + 1
End If
Next
'足した要素の数で割る
Test = Test / 要素数
End Function