Access デスクトップ データベースで ”RunCode/プロシージャの実行” マクロ アクションを使用すると、Visual Basic for Applications (VBA) の Function プロシージャを呼び出すことができます。
設定
”RunCode/プロシージャの実行” マクロ アクションには次の引数があります。
アクションの引数 |
説明 |
関数名 |
VBA の Function プロシージャの名前です。 関数の引数はかっこで囲みます。 マクロ デザイン ウィンドウの [関数名] ボックスに関数名を入力します。 これは必須の引数です。 注: Access デスクトップ データベース (.mdb または .accdb) では、この引数の関数を選択する場合、[ビルド] ボタンをクリックして式ビルダーを使います。 式ビルダーの一覧で目的の関数をクリックします。 |
解説
ユーザー定義関数プロシージャは、 Access モジュールに格納されます。
Function プロシージャでは、引数を指定しない場合も、次の例に示すようにかっこを含める必要があります。
TestFunction()
イベント プロパティ設定で使用するユーザー定義の関数名前の場合とは異なり、[関数名] 引数で指定する関数名は等号記号 (=) で始めません。
Access では、関数の戻り値は無視されます。
注: 関数名がモジュール名と同じである場合、マクロから Function プロシージャを呼び出すことはできません。
ヒント
Visual Basic で記述された Sub プロシージャまたはイベント プロシージャを実行するには、Sub プロシージャまたはイベント プロシージャを呼び出す Function プロシージャを作成します。 次に ”RunCode/プロシージャの実行” マクロ アクションを使用して Function プロシージャを実行します。
”RunCode/プロシージャの実行” マクロ アクションを使用して関数を呼び出した場合、Access はデータベース用の標準モジュール内の [関数名] 引数で指定された名前を持つ関数を探します。 ただし、このアクションが、フォームまたはレポート上でメニュー コマンドをクリックする操作に応答して、あるいはフォームまたはレポート上でのイベントに応答して実行される場合、Access は該当する関数を最初にフォームまたはレポートのクラス モジュール内で探し、次に標準モジュール内で探します。 [関数名] 引数で指定された関数のナビゲーション ウィンドウの [モジュール] 領域に表示されるクラス モジュールでの検索は行われません。
このアクションは、VBA モジュールでは使用できません。 代わりに、VBA で直接、目的の Function プロシージャを実行します。