• ベストアンサー

EXCEL2000(VBA) イベントの取得について

EXCEL2000のVBAで多くのコマンドボタンを設置したのですが、 これは面倒だと思って、Collectionプロパティを使ってコード部では うまくボタンを配列で扱えるようになったのですが、問題はボタンが押された時のイベント時です。 VB6.0とかだとコマンドボタンのオブジェクト名自体に配列を付けることが出来て、 尚かつ、このボタンを押された時、配列の何番目のがクリックされたのかなど、 Private Sub xxxxx_Click(Index As Integer) のように出来たと思います。 VBA(EXCEL2000)でCollectionでとった配列の何番目のボタンを押されたなど、 配列の要素を取得することは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • zerosix
  • ベストアンサー率31% (47/149)
回答No.1

出来ますよ。サンプルを見つけたのでやってみてください。

参考URL:
http://www.moug.net/skillup/opm/opm08-01.htm
yo-he
質問者

お礼

すみません、手違いでお礼を補足の欄に書いてしまいました。

yo-he
質問者

補足

アドバイスありがとうございます。 クラスモジュールですか?けっこう難しいそうですが、 頑張って実現させてみたいと思います。 また何か有りましたら宜しくお願いします。 ありがとうございました。

その他の回答 (1)

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

こんにちは。maruru01です。 Collectionプロパティ? Collectionオブジェクトのことですよね。 VB6.0のコントロール配列のことですね。 残念ながら、VBAにはコントロール配列の機能はなかったと思います。 したがって、各コントロール1つずつにイベントを書かなければいけないと思います。 ただし、共通化出来る部分はプロシージャ化すればいいとは思います。 Collectionオブジェクトでは、一度にプロパティの値を設定したりする時に便利ですね。 IndexをカウンタにしてForループとかで回せばいいわけですから。 私は、テキストボックスをCollection化して、一度に内容のクリアをしたり、使用可/不可や表示/非表示の切り替えなどで利用しています。 イベントはあきらめています(笑)。 あとは、VB6.0で作るか。

yo-he
質問者

お礼

やっぱり普通にやって、イベント時に配列を取得するなんて無理でしたか... 自分も簡単にできる方法を探していたのですが、 おかげさまで諦めがつきました。(苦笑) また何か有りましたら宜しくお願いします。 ありがとうございました。

関連するQ&A