• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じコンボボックスを二つ以上作る方法)

同じコンボボックスを二つ以上作る方法

このQ&Aのポイント
  • 同じ内容を表示するコンボボックスを二つ作る方法について教えてください。
  • 一つのプログラムで二つのコンボボックスを作る方法を教えてください。
  • 簡略化して一つのプログラムでコンボボックスを2つ操作する方法を教えてください。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

Private Sub UserForm_Initialize() ComboBox1.AddItem "はい" ComboBox1.AddItem "いいえ" ComboBox2.AddItem "はい" ComboBox2.AddItem "いいえ" End Sub ではダメなのでしょうか。

joker_70
質問者

お礼

言葉たらずで申し訳なかったのですが。 その方法だと同じComboBoxを10個作ったりした時など、 文章がかなり長くなって見えにくくなってしまうと思ったんで 実施してません。 他に方法がなければその方法で実施したいと思います。

その他の回答 (4)

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.5

ComboBox1からComboBox10までの場合 Private Sub UserForm_Initialize() ComboBox1.Clear ComboBox1.AddItem "はい" ComboBox1.AddItem "いいえ" Dim i As Integer For i = 2 To 10 Me.Controls("ComboBox" & i).List = ComboBox1.List Next End Sub

joker_70
質問者

お礼

ご回答ありがとうございます。 色々とコメントを頂いた結果この方法で試したいと思います。

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.4

Private Sub UserForm_Initialize() ComboBox1.Clear ComboBox1.AddItem "はい" ComboBox1.AddItem "いいえ" ComboBox2.List = ComboBox1.List ComboBox3.List = ComboBox1.List ComboBox4.List = ComboBox1.List End Sub

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.3

関数にしてやればいいんじゃないですか? Private Sub initCombo(oCombo As msforms.ComboBox) 'エラーになる場合は"msforms.ComboBox"を"object"にしてみましょう oCombo.AddItem "はい" oCombo.AddItem "いいえ" End Sub Private Sub UserForm_Initialize() call initCombo(ComboBox1) call initCombo(ComboBox2) call initCombo(ComboBox3) '.... End Sub #2さんの方法だと、(コンボボックスのみというif文はありますが) すべてのコントロールが対象になりますね。 つまり3つあるコンボボックスから、2つだけこの操作をしたい、というような場合には不向きです。 (if文の条件を変えればいいでしょうけど、効率が悪いです) また、この例ではコントロールの名前に依存しています(正しくはtypename()です)し、 Like演算子は「あいまい」な演算子であるため、あまり使わない方がいい演算子です。 ただ#2さん紹介のコードの「ForEachでコントロールを列挙する」というエッセンスは非常に有益ですので、この機会に覚えておくといいですよ。

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.2

言語の記述がないので憶測ですが、エクセルVBAでコントロール配列のような事を期待されているのであれば、茨の道となります が不可能ではありません http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm そうではなく、コントロールの設定を簡単に済ます為の方法であれば、おあつらえ向きのがあります Private Sub UserForm_Initialize()   Dim MyItem   For Each MyItem In Me.Controls     If MyItem.Name Like "ComboBox*" Then       With MyItem         .AddItem = "はい"         .AddItem = "いいえ"         .ListRows = 2         .Value = "はい"       End With     End If   Next MyItem End Sub Ifの部分次第で、TextBoxでもLabelでも、また"*"を変えたり、Ifをさらにネストしたり、あるいはIfの代わりにSelect Caseを使って複数コントロールに対応させたりなんて事も出来ますよ なんせ"文字"なんで…^^; 上のようにすれば他のステータスも一緒に設定できて、結構便利ですよ お試しを

joker_70
質問者

お礼

言葉足らずで申し訳ありません。 言語はEXCEL VBAです。 このようなやり方でできるんですか? 試しに実施してみたいと思います。

関連するQ&A