- ベストアンサー
同じコンボボックスを二つ以上作る方法
- 同じ内容を表示するコンボボックスを二つ作る方法について教えてください。
- 一つのプログラムで二つのコンボボックスを作る方法を教えてください。
- 簡略化して一つのプログラムでコンボボックスを2つ操作する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub UserForm_Initialize() ComboBox1.AddItem "はい" ComboBox1.AddItem "いいえ" ComboBox2.AddItem "はい" ComboBox2.AddItem "いいえ" End Sub ではダメなのでしょうか。
その他の回答 (4)
- hotosys
- ベストアンサー率67% (97/143)
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
お礼
ご回答ありがとうございます。 色々とコメントを頂いた結果この方法で試したいと思います。
- hotosys
- ベストアンサー率67% (97/143)
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)
関数にしてやればいいんじゃないですか? 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)
言語の記述がないので憶測ですが、エクセル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を使って複数コントロールに対応させたりなんて事も出来ますよ なんせ"文字"なんで…^^; 上のようにすれば他のステータスも一緒に設定できて、結構便利ですよ お試しを
お礼
言葉足らずで申し訳ありません。 言語はEXCEL VBAです。 このようなやり方でできるんですか? 試しに実施してみたいと思います。
お礼
言葉たらずで申し訳なかったのですが。 その方法だと同じComboBoxを10個作ったりした時など、 文章がかなり長くなって見えにくくなってしまうと思ったんで 実施してません。 他に方法がなければその方法で実施したいと思います。