- 締切済み
Accessのマクロ
フォームに貼り付けたボタンがクリックされた時、作成しておいたマクロが動くようにするには、ボタンのプロパティーで『クリック時』から作成したマクロを選びます。 ここで素朴な疑問なのですが、例えば「M住所録」と言うマクロがあります。 そのマクロには「削除(表示されているレコードを削除する)」と「新規作成(新規入力レコードへジャンプ)」の2つの機能が作成されています。 こうゆうマクロをボタンのプロパティーの『クリック時』からドロップダウンリストで見ると、 M住所録 M住所録.削除 M住所録.新規作成 と言う風に表示されています。 試しに一番上の「M住所録」を選んでも何も動作しません。 一番上に表示されている「M住所録」は意味があるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- DexMachina
- ベストアンサー率73% (1287/1744)
> 一番上に表示されている「M住所録」は意味があるのでしょうか? 「M住所録」というマクロで、『「マクロ名」欄が埋められている先頭の行』と 『「条件」欄か「アクション」欄の少なくとも一方が埋められている先頭の行』 を見たときに、前者が先にある場合は意味がありませんが、後者が先に ある場合には意味があります。 また、「マクロ名」欄が全て空欄のマクロを作れば、その「マクロ」オブジェクトに 登録されたアクション全てが一連の動作として実行されます。 1) マクロ名 条件 アクション 削除 Msg=2 マクロの中止 コマンドの実行(引数=「レコードの削除」) メッセージボックス(引数=「削除しました」) →マクロ名として「M住所録」を指定しても何も起こらない 2) マクロ名 条件 アクション Msg=1 マクロの実行(引数=「M住所録.削除」) 削除 コマンドの実行(引数=「レコードの削除」) メッセージボックス(引数=「削除しました」) →「M住所録」のマクロ名の指定が有効 一連のマクロが比較的短い場合は、「1)」の形にして、例えば1つの フォームで使用するマクロ群を1つの「マクロ」オブジェクトとしてまとめて 保存した方が整理しやすいかと思います。 一方、1つのマクロで何工程もの処理を行う場合は、1つのコマンド ボタンの動作だけを1つの「マクロ」オブジェクトとしてまとめた方が、 後で見直すときにわかりやすいと思います。 この場合は、「2)」の形(つまりそのマクロオブジェクトそのものを呼び出す 感じ)にした方が、その人の感覚によってはわかりやすいかもしれません。 (私の場合は、おおむねフォームとマクロを一対一で対応させていたため、 「1)」の形で作っていましたが) 『「1)」の場合はAccess側が自動で判定して「M住所録」は表示させなく してもいいのでは?』と思われるかもしれませんが、まあ、そこまでの判定を させる設計にはしなかった、ということだと思います。 (「マクロ名」だけを入力してマクロを保存した場合に、アクションが記述されて いなくても、そのマクロ名だけが表示されるのと、実質的に同じこと)
- CHRONOS_0
- ベストアンサー率54% (457/838)
名前がリストに出てくるのはあなたがそういう名前のマクロを登録しているからです (身に覚えがなくてもね) デザインビューで調べてみてください
補足
回答ありがとうございます。 とても興味深く読ませて頂きました。 実際に試してみたいと思います。 ちょっと時間がかかるかもしれませんが後日結果報告申し上げます。