- ベストアンサー
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
ユーザーフォームにコンボボックスが複数あります。 その内の3つについては、同一のリストを設定します。 リストの個数は30個ぐらいで、できればセルを使用 したくありません。 下記を3回記述するよりも短くしたいのですが、どのよ うな方法がありますでしょうか? 現状では、ComboBox1、4、6ですが、連番にする必要が あれば、変更可能です。 With ComboBox1 .Clear .AddItem "いくら" .AddItem "たこ" .AddItem "まぐろ" ・・・ End With お手数ですがよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
下記で如何でしょう。 Dim myArr As Variant Dim i As Variant myArr = Array("1", "4", "6") For Each i In myArr With Me.Controls("ComboBox" & i) .Clear .AddItem "いくら" .AddItem "たこ" .AddItem "まぐろ" End With Next
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >下記を3回記述するよりも短くしたいのですが、どのよ >うな方法がありますでしょうか? 例えば、このようにすれば入りますが、ただ、ご質問の趣旨に、なんといっていいのか、分からなくなります。自分のスキルの範囲内で、結果オーライだと思います。それでは、いけないのでしょうかしらね。(^^;自分に置き換えて考えてみると、そう思ってしまいました。 Dim MyLists As Variant Const MYLIST = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z" MyLists = Split(MYLIST, ",") Me.ComboBox1.List = MyLists
お礼
ご回答ありがとうございます。仰るとおりです。 ですが、とても勉強になりました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
For i = 1 To 3 With Controls("ComboBox" & i) .Clear .AddItem "いくら" .AddItem "たこ" .AddItem "まぐろ" ・・・ End With Next 参考: http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays02.htm
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございます。