• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA comboboxへの割り当て)

Excel VBA comboboxへの割り当て方法と引数の渡し方

このQ&Aのポイント
  • Excel VBAを使用して、comboboxに割り当てる方法について説明します。また、どのcomboboxから呼び出されたかを引数で渡す方法も解説します。
  • Excel VBA comboboxの割り当て方法と引数の渡し方について説明します。comboboxにSub Sub1を割り当てる方法や、どのcomboboxから呼び出されたかを引数で渡す方法について詳しく解説します。
  • Excel VBAでcomboboxにSub Sub1を割り当てる方法と、どのcomboboxから呼び出されたかを引数で渡す方法についてご紹介します。comboboxへの割り当て方法や引数の渡し方をわかりやすく解説します。

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

  • ベストアンサー
  • Azzz___
  • ベストアンサー率40% (9/22)
回答No.1

こんにちは。 間違った解釈をしていれば、すみませんが、 多分、実装されたいことをするにはクラスモジュールが便利だと思います。 クラスモジュールで動的にコンボボックスを作成し、それをインスタンスとして参照するやり方です。 この方法では何個作成するかを意識しないで作った分だけ勝手に割り当てるようなイメージでできます。 それ以外の方法としては オブジェクト名に通し番号を付与するようにし、 vba.left(me.combobox1.name,1) 等とするFunction的なプロシージャを入れれば、該当するコンボボックスを発見することができると思います。 ただしこの方法だと、作ったコンボボックスの数だけ、各イベントにコードを書き込む必要があり、数が多いと面倒なのとメンテナンスが大変な気がします。 はずしてたらすみません。

obone
質問者

補足

ありがとうございます。 イメージはつかめるのですが、クラスモジュールが不慣れなためどこかサンプルのあるサイト等ごぞんじでしたらお教えください。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

http://okwave.jp/qa/q5626682.html に同じ質問をしているようだが、どうだったのか。 ーー OnAction(OnChangeなども)はメニューバーやツールバーでのコンボのコードでは出てくるが、シート上に設けた、コンボでは使えないのではないかな。 そのシートでコードの表示ででるVBE画面でGeneral部でComboBoxX、右側イベント部でドロップダウンに出てこない。 フォーム上やシート上やツールバー上などそれぞれコードに違いがあるから、安易に考えないこと。 普通は上記の答えにあるように、コンボボックスのComboBox1_Changeイベントなどで処理するはず。 ーー 上記に会った >Sheet1でComboBoxを何個貼り付けるか決定(1~100) そのあとSheet2に貼り付ける こんなことは、設計からして常軌を逸していませんか? あなた思いついたあなたのやりたい既定の方法でなく、別途質問に文章でどういう場合で、どういうことをやりたいのか、諸氏に聞いてみるべきだ。 素人の思いつきで、思った路線で突っ張って走り、難しい問題を投げているように思えてならない。 VBAではコントロール配列の仕組みもなく、沢山の同種のコントロールを作るとどれが動作したか識別するのに、難しい 仕組みを必要とすると思う。クラスの作成なんてやったこともないレベルではないですか。 場合によってはあきらめざるえないかも。何事も自分の力量に合ったものを考えざるを得ないのが世の常。 ーーー Private Sub ComboBox1_Change() call sub1("コンボの名前") End Sub 結果こうなるようにしたい なら OnChange="sub1" ->エラーでした .Change="sub1" ->エラーでした を書かなければ良いのではないですか。常識だが、何のことを聞いているのか?

obone
質問者

お礼

同じIDを複数で使っているので重複してしまいましたが、それにしても何様?

関連するQ&A