dポイントプレゼントキャンペーン実施中!

イベントが発生したときに自分がどのオブジェクトから呼ばれているイベントか知る方法ってありますか?あるいは上から何番目のコマンド(縦に同じコマンドがズラッと並んでいるイメージ)から呼ばれているかをイベント内部から知る方法ってありますか?


今コーディングで新規フォームを作ってそこにレコード数だけコントロールを配置するというコーディングを考えております。
そのコマンドにクリックイベントも発生させたいので、コントロールを作成してイベントを埋め込むという作業まではできたのですが、不特定多数のコマンドボタンの作成設置方法に悩んでおります。


VBAではコントロールの配列はできないので、コントロールの名前などを全て変えて作らなければなりません。そこをどうするかで頭を悩ませています。
しかも後でどのコントロールがクリックされて呼ばれたのかも知りたいので、コントロール配列のindex番号みたいなものを取得しておく必要もありますが、何か良い方法はないでしょうか?


いっそのことコマンドの名前を数字にして、後でそのコントロール名とかオブジェクトのメソッドを参照してインデックス番号を取得・・・みたいなことを考えてたのですが、たしか既存の(目に見えて形となっている)(オブジェクト名自体を持っている)コントロールのメソッドを使用するのはかなり不可能だったような気がするので、タグやオブジェクト名も拾えない気がします。


VBなら同じイベント内容のコマンドを全て配列にしてまとめてクリックイベントにしてそのIndexを見ればプロシージャ1つで済みますが、VBAで似たような方法をする方法を教えてください。


ループで回しながらオブジェクト名の違うコントロールを配置する方法は自分でなんとかやってみますのでindex番号の取得の方法だけお願いします。

A 回答 (2件)

VBAでコントロール配列はできませんが、


クラスモジュールを使用すれば擬似的に
は実現可能です。
イベントを記述する場合はそちらの方が
簡単です。

参考URLにそのものがあります。

参考URL:http://www.moug.net/skillup/opm/opm08-06.htm

この回答への補足

ありがとうございます。少し勉強します。

補足日時:2004/10/05 07:40
    • good
    • 0

Me.ActiveControlで取れます

    • good
    • 0
この回答へのお礼

できました。ありがとうございます。

お礼日時:2004/10/08 07:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!