- 締切済み
オブジェクト
VBでimage(オブジェクト名:aaa)をクリックした折 aaa_click() ができます そこでご質問なのですが、クリックしたオブジェクト名を 取得できるのでしょうか? 例えば xxx_click 関数を作成し、 (1) image(オブジェクト名:aaa)をクリックした折 xxx_click()関数に入って オブジェクト名 aaa と取得 (2) 他のimage(オブジェクト名:bbb)をクリックした折も xxx_click()関数に入って オブジェクト名 bbb と取得 のような xxx_click 関数を作成することは可能でしょうか? 非常に困っています。教えてください
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- jmh
- ベストアンサー率23% (71/304)
コントロール配列しすると、Index が得られます。 または…、 Private Sub xxxClick(ByRef n As String) ' … End Sub Private Sub aaa_Click() xxxClick("aaa") End Sub Private Sub bbb_Click() xxxClick("bbb") End Sub みたいにする。 …ではダメですか?
> Imageコントロールはフォーカスを持たないので、ActiveControlでは参照出来ないと思います。 > Pictureコントロールなら出来ますが。 ご指摘感謝です。m(_ _)m ラベルとかもダメですね、たぶん。(試してみてないけど)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 No.1の人の方法ですが、 Imageコントロールはフォーカスを持たないので、ActiveControlでは参照出来ないと思います。 Pictureコントロールなら出来ますが。
> そこでご質問なのですが 敬語の使い方が変です。ふつう自分のことには尊敬語は使いません。 たぶん、尊敬語と謙譲語の使い分けが理解できていないのだと思いますが・・・。 (まさか社会人じゃないよね?) で、「ご質問の」ケースですが(笑)、 上位モジュール(呼び出し側)で Screen.ActiveControl.Name を引数として渡し、 下位モジュール(呼び出し先)で As String の引数で受け取ればよいと思います。 Screen.ActiveControl ↓ As Control でもほぼおなじ。
補足
早速のご回答ありがとう御座います。 formに多くのimage(bmp型)を貼り付けています すべてimageのオブジェクト名が異なりますが、 どのimageをクリックしても xxx_click()関数が実行され この関数の中で、どんな名前のオブジェクトのimageがクリックされたのか? 取得したいのです ご教示頂きました方法で取得できるのでしょうか? 試みたのですが、分かりませんでした もう少し詳細にご教示頂けませんでしょうか? よろしくお願い申し上げます