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