• 締切済み

オブジェクト

VBでimage(オブジェクト名:aaa)をクリックした折  aaa_click() ができます    そこでご質問なのですが、クリックしたオブジェクト名を 取得できるのでしょうか?  例えば xxx_click 関数を作成し、 (1) image(オブジェクト名:aaa)をクリックした折      xxx_click()関数に入って オブジェクト名 aaa と取得      (2) 他のimage(オブジェクト名:bbb)をクリックした折も      xxx_click()関数に入って オブジェクト名 bbb と取得 のような xxx_click 関数を作成することは可能でしょうか? 非常に困っています。教えてください

みんなの回答

  • jmh
  • ベストアンサー率23% (71/304)
回答No.4

コントロール配列しすると、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 みたいにする。 …ではダメですか?

noname#4564
noname#4564
回答No.3

> Imageコントロールはフォーカスを持たないので、ActiveControlでは参照出来ないと思います。 > Pictureコントロールなら出来ますが。 ご指摘感謝です。m(_ _)m ラベルとかもダメですね、たぶん。(試してみてないけど)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 No.1の人の方法ですが、 Imageコントロールはフォーカスを持たないので、ActiveControlでは参照出来ないと思います。 Pictureコントロールなら出来ますが。

noname#4564
noname#4564
回答No.1

> そこでご質問なのですが 敬語の使い方が変です。ふつう自分のことには尊敬語は使いません。 たぶん、尊敬語と謙譲語の使い分けが理解できていないのだと思いますが・・・。 (まさか社会人じゃないよね?) で、「ご質問の」ケースですが(笑)、 上位モジュール(呼び出し側)で Screen.ActiveControl.Name を引数として渡し、 下位モジュール(呼び出し先)で As String の引数で受け取ればよいと思います。 Screen.ActiveControl   ↓ As Control でもほぼおなじ。

nao0
質問者

補足

早速のご回答ありがとう御座います。 formに多くのimage(bmp型)を貼り付けています すべてimageのオブジェクト名が異なりますが、 どのimageをクリックしても xxx_click()関数が実行され この関数の中で、どんな名前のオブジェクトのimageがクリックされたのか? 取得したいのです ご教示頂きました方法で取得できるのでしょうか? 試みたのですが、分かりませんでした もう少し詳細にご教示頂けませんでしょうか? よろしくお願い申し上げます

関連するQ&A

専門家に質問してみよう