【ACCESS VBA】引数の数を可変にするプロシージャを作成するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、引数の数を可変にするプロシージャを作成する方法をご紹介します。

使用するキーワード

ParamArrayキーワード

説明
ParamArrayキーワードを指定すると、引数は配列として扱われます。
指定する引数の数が異なる場合に使用します。
最後の引数でのみ使用可能です。
Optional、Byval、ByRefキーワードと一緒に使うことはできません。

配列に関する参考記事はこちら

サンプルプログラムで使用する関数

UBound関数

UBound (arrayname [, dimension])

説明
配列の指定された次元で使用できる添字(要素数)の最大値を取得します。
指定項目 必須 説明
arrayname 配列変数の名前を指定。
dimension

多次元配列の場合、どの次元の最大値を取得するかを指定。
3次元配列「Dim A(1 To 100, 0 To 3, -3 To 4)」の場合、dimension「1」を指定すると「100」を取得、dimension「2」を指定すると「3」を取得、dimension「3」を指定すると「4」を取得します。
省略した場合は、dimension「1」を指定したものと見なされます。

サンプルプログラムで使用するステートメント

For Nextステートメント

For counter = start To end [ Step step ]

  処理を記述
       [ Exit For ]
Next [ counter ]

説明
counterの値がendになるまで処理を繰り返します。
指定項目 必須 説明
counter 繰り返し回数を格納する変数。カウンタ変数と呼びます。
start 初期値を指定。
end 終了値を指定。
Step step

stepには、1回ループする際に加算する量を指定。
「Step 2」とした場合、カウンタ変数は「0、2、4、6・・・」と2ずつ加算されます。
省略した場合、カウンタ変数は「1」ずつ加算されます。
stepには、マイナスの値も指定できます。
Exit For ループの途中で処理を終了したい場合に使用します。
Next 次の処理に移動します。

サンプルプログラム(使用例)

呼び出し先のプロシージャ

1  呼び出し先のFunctionプロシージャ「FncSample」を作成。
引数:arry()。ParamArrayキーワード指定の配列。
戻り値の型は、長整数型。
3 数値加算用変数「Addition」(長整数型)を宣言。
4 カウンタ変数「i」(長整数型)を宣言。
6 引数の数だけ以下の処理を繰り返す。
7 呼び出し元で指定された引数の値を加算する。
10 数値加算用変数「Addition」をFunctionプロシージャ「FncSample」に設定し、加算した値を返す。

呼び出し元のプロシージャ

1 呼び出し元のSubプロシージャ「Sample」を作成。
3 Functionプロシージャ「FncSample」を「2つの引数指定」で呼び出し、戻り値をメッセージボックスに表示する。
4 Functionプロシージャ「FncSample」を「3つの引数指定」で呼び出し、戻り値をメッセージボックスに表示する。

実行結果

引数 説明
2つ指定した場合
引数2つの値(100, 200)が加算される。
3つ指定した場合 引数3つの値(100, 200, 300)が加算される。

最後まで読んでいただき、ありがとうございました!