パラメーター配列で引数を配列として受け取る【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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です