![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
今同じ内容を表示するコンボボックスを二つ作ろうと思っているのですがつくり方がわかりません。
どのようにすれば一つのプログラムで二つのコンボボックスを作れるのでしょうか
例:
表示では
はい
いいえ
プログラム:
Private Sub UserForm_Initialize()
ComboBox1.AddItem "はい"
ComboBox1.AddItem "いいえ"
End Sub
Private Sub UserForm_Initialize()
ComboBox2.AddItem "はい"
ComboBox2.AddItem "いいえ"
End Sub
↑のような作り方ではなく簡略化して
Private Sub UserForm_Initialize()
ComboBox●.AddItem "はい"
ComboBox●.AddItem "いいえ"
End Sub
●部を変更できれば一つのプログラムでコンボボックスを2つ操作できると思うのですがどのようにすればよろしいでしょうか?
No.1ベストアンサー
- 回答日時:
Private Sub UserForm_Initialize()
ComboBox1.AddItem "はい"
ComboBox1.AddItem "いいえ"
ComboBox2.AddItem "はい"
ComboBox2.AddItem "いいえ"
End Sub
ではダメなのでしょうか。
言葉たらずで申し訳なかったのですが。
その方法だと同じComboBoxを10個作ったりした時など、
文章がかなり長くなって見えにくくなってしまうと思ったんで
実施してません。
他に方法がなければその方法で実施したいと思います。
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
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
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でコントロールを列挙する」というエッセンスは非常に有益ですので、この機会に覚えておくといいですよ。
No.2
- 回答日時:
言語の記述がないので憶測ですが、エクセルVBAでコントロール配列のような事を期待されているのであれば、茨の道となります
が不可能ではありません
http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P …
そうではなく、コントロールの設定を簡単に済ます為の方法であれば、おあつらえ向きのがあります
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です。
このようなやり方でできるんですか?
試しに実施してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) VBAユーザーフォームの複数のコンボボックスについて。 1 2022/04/25 08:13
- Visual Basic(VBA) リストボックス セルの値を取得する 1 2022/05/21 20:47
- Visual Basic(VBA) リストポックスについて 2 2022/11/05 20:48
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
Excel(エクセル)
-
【Excel VBA】コンボボックスで選択した値の取得
Excel(エクセル)
-
VB.NET)コンボボックスの連動について
Visual Basic(VBA)
-
-
4
VBA コンボボックスで選んだ値を取得するには
その他(Microsoft Office)
-
5
コンボボックスの文字によるif文の作成
Visual Basic(VBA)
-
6
コンボボックス3つを連動させたい
Visual Basic(VBA)
-
7
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
8
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
9
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
10
Visual Basic 6.0 コンボボックスのChangeイベントが発生しません
Visual Basic(VBA)
-
11
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
12
EXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法
Excel(エクセル)
-
13
変数を動的に作るには?
Visual Basic(VBA)
-
14
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
15
エクセル VBA テキストボックス 掛け算 例)5 × -5 ができない
Excel(エクセル)
-
16
VBA テキストボックスの計算
Visual Basic(VBA)
-
17
ユーザーフォーム 3つのコンボボックスの連動について教えてください。
Excel(エクセル)
-
18
Excel VBA ユーザーフォーム内のラベルにテキストボックスの計算結果を出す方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
VBA ユーザーフォームの Keypre...
-
C# FlowLayoutPanelにて
-
無料で使えるグリッドコントロール
-
もしフォームヘッダーにコント...
-
VBAでオプションボタンを透過
-
バーコードを作成しているエク...
-
ワークシート上のコントロール...
-
VBAのエラーについて、”実行時...
-
ビープ音鳴らし続けたい。
-
W-ZERO3 と NetFront...
-
間違えて配置してしまったコン...
-
With~EndWithの省略部分と引数...
-
VBAでイベント発生時に自分の呼...
-
めちゃめちゃな文章でごめんな...
-
論理的アクセス・コントロール...
-
キンドルでの購入が親にバレな...
-
コントロールバーのアイコンの...
-
ActiveXコントロールCalendarの...
-
checkboxのautosizeをFramework...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
EXCELでactivexコントロールを...
-
C#で角が丸いテキストボックス
-
(VBA)スピンボタンの大量...
-
chr関数の呼び出しで「プロ...
-
変数をコントロール型で使用す...
-
VBAのエラーについて、”実行時...
-
ExcelVBAでListViewが使用できない
-
間違えて配置してしまったコン...
-
VBAのフォームでTextBoxがいっ...
-
Groupboxの配下のコントロール...
-
excelのリストボックスで選択し...
-
エクセルVBAでオプションボタン...
-
ACCESS2010のVBAでフォーム内ク...
-
フォーム上の現在アクティブな...
-
コンボボックスの文字によるif...
-
ユーザーフォームで動的(Me.Con...
-
コントロールを移動できない
おすすめ情報