質問: windows7 Access2010 ボタンクリック時に マクロを実行させようと考えております。
回答: 『[イベントプロシージャ]に変えるとうまく実行される』ということは、フォームモジュールにイベントプロシージャとして登録してあるということですね。 マクロから参照出るプロシージャは標準モジュールのパブリック関数だけです。 フォームモジュールのイベントプロシージャを切り取って、標準モジュールに貼り付けて、 Private Sub command54_Click() の部分を、 Public Function command54_Click() と書き換えればマクロから参照できます。ただし、コード内で Me などを使っている場合は、CodeContextObject に書き換えるなど、修正が必要な場合があります。 しかし、せっかくフォームモジュール内に記述してあるコードを標準モジュールに移動するのは、本末転倒だと思います。 「埋め込みマクロ」にしたいということは、フォーム内の処理はフォーム内ですませて、標準モジュールなどの別オブジェクトに処理を分散させたくないという目的だと思いますので。 現状のまま、フォームモジュールにイベントプロシージャとして登録しておくのがいいかと思います。違いは「埋め込みマクロ」か「埋め込みプロシージャ」かの違いだけですので。