Access VBA プロシージャから別のプロシージャを呼び出す方法。

VBA では、ユーザーが定義したプロシージャ内から、別のプロシージャを、簡単に呼び出すことができます。

プログラムは長くなると複雑になるので、処理を別のプロシージャとしてまとめ、呼び出して使うことがあります。

今回は最もシンプルな例ですが、よく使われる方法なので、仕組みを理解しましょう。


【1】Access で VBEを起動して、作成済みの標準モジュール「test」を表示します。

access-vba-45.gif

*VBEは「Altキー」+「F11キー」で起動できます。


【2】以下の図のように、新たに Subプロシージャ test() を作成してください。

access-vba-46.gif

「Ctrlキー」+「スペースキー」で入力候補を表示したり、コピー貼り付けを使うと、簡単に作れます。


作成したら実行してみましょう。

【3】Subプロシージャ test() にカーソルを移動します。

access-vba-52.gif

*実行したいプロシージャ内なら、カーソルの位置はどこでもかまいません。


【4】ツールバーの「Sub/ユーザーフォームの実行」ボタンをクリックします。

access-vba-53.gif

*「F5キー」でもプログラムを実行できます。


【5】画面が Access に切り替わり、メッセージボックスが表示されました。

access-vba-54.gif

これは Subプロシージャ test1() が呼び出された結果です。


【6】メッセージボックスの「OK」ボタンをクリックします。

access-vba-48.gif


【7】続いて Subプロシージャ test2() が呼び出されました。

access-vba-49.gif


【8】最後に Subプロシージャ test3() が呼び出されました。

access-vba-50.gif


【9】プログラムが終了し、VBEの画面に戻りました。

access-vba-51.gif


【解説】

(1)プロシージャ内から別のプロシージャを呼び出すには、「Call」を使います。

Call test1
Call test2
Call test3

*Subプロシージャ名の後ろに () カッコは不要です。


(2)プロシージャ内からは、複数のプロシージャが呼び出せます。


【ワンポイント】
今回はシンプルな例なので、あまり効果を実感できないかもしれません。しかし、例えば Subプロシージャ test1() 内の処理が、100行だったらどうでしょうか?

100行の処理を「Call test1」というふうに、プロシージャ名だけで簡単に呼び出せることは、とても便利で重要なのです。

他のプログラミング言語では、呼び出し方が異なりますが、考え方は同じなので、覚えておくと役立ちます。

スポンサードリンク

スポンサードリンク






Access VBA 初心者入門講座 TOPへ