Access VBA Callステートメントの使い方について。

VBA では、独自に定義したプロシージャを呼び出す時に、「Call ステートメント」を使います。

これまでにも何度か Call ステートメントを使用していますが、プロシージャの種類、引数の有無、戻り値の有無によって、呼び出し方がいろいろあります。

そこで今回は、Call ステートメントとプロシージャの呼び出し方の関係について、整理しておくことにします。


(1)Call ステートメントを使うのは、以下の場合です。

・Subプロシージャを呼び出す
・戻り値の無い Functionプロシージャを呼び出す


(2)プロシージャを呼び出す時に Call は省略できます。 Call を省略する時は ()カッコも省略しなければなりません。(重要)

○ Call dispData() 基本形
○ Call dispData 引数が無いのでカッコを省略
○ dispData コールとカッコを省略
× dispData() コールを省略しているのにカッコがあるためエラー


(3)Call ステートメントを使わないで、引数のあるSubプロシージャを呼び出す場合は、()カッコを付けないで書きます。

addData 99, "ハワイ"


(4)もう一つ注意する点は、 Functionプロシージャ を呼び出すときに、Call ステートメントを使うと、戻り値を取得することができません。したがって戻り値の無い場合だけ利用できます。

戻り値の無いFunctionプロシージャの例

Function calc(a As Integer, b As Integer)
  Debug.Print a + b
End Function


call calc(10,20)

確かに Call で呼び出せますが、あまり良い例ではありません。戻り値が無い場合は Subプロシージャ の方が適しています。


以上のように、プロシージャの呼び出し方には、いろいろな書き方があることを理解していただけたらと思います。初心者にとっては少し難しいかもしれませんが、忘れた時にはこのページを参考にしてください。

忘れても VBE(Visual Basic Editor) がエラーメッセージで教えてくれるので、大丈夫です。


スポンサードリンク

スポンサードリンク






Access VBA 初心者入門講座 TOPへ