こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2002-08-28 13:38:44

QNo.345470

すぐに回答ほしいです

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

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

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

投稿日時 - 2002-08-28 14:32:35

補足

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

投稿日時 - 2002-08-28 14:58:29

お礼

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

投稿日時 - 2002-08-28 15:03:51

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちは。maruru01です。

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

投稿日時 - 2002-08-28 14:34:59

お礼

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

投稿日時 - 2002-08-28 15:02:53

あなたにオススメの質問