• ベストアンサー

エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト

ユーザーフォームにコンボボックスが複数あります。 その内の3つについては、同一のリストを設定します。 リストの個数は30個ぐらいで、できればセルを使用 したくありません。 下記を3回記述するよりも短くしたいのですが、どのよ うな方法がありますでしょうか? 現状では、ComboBox1、4、6ですが、連番にする必要が あれば、変更可能です。 With ComboBox1 .Clear .AddItem "いくら" .AddItem "たこ" .AddItem "まぐろ" ・・・ End With お手数ですがよろしくお願いします。

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

  • ベストアンサー
noname#31387
noname#31387
回答No.1

下記で如何でしょう。 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

nonboo
質問者

お礼

ご回答ありがとうございます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >下記を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

nonboo
質問者

お礼

ご回答ありがとうございます。仰るとおりです。 ですが、とても勉強になりました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

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

nonboo
質問者

お礼

ご回答ありがとうございました。