
今同じ内容を表示するコンボボックスを二つ作ろうと思っているのですがつくり方がわかりません。
どのようにすれば一つのプログラムで二つのコンボボックスを作れるのでしょうか
例:
表示では
はい
いいえ
プログラム:
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
エクセルVBAでオプションボタン...
-
EXCELでactivexコントロールを...
-
chr関数の呼び出しで「プロ...
-
チェックボックスをオンにした...
-
LCD 1602ディスプレイの輝度調...
-
無料で使えるグリッドコントロール
-
VBAのフォームでTextBoxがいっ...
-
vb.netで画面のコントロールId...
-
TEXTBOXでカンマ編集
-
PDF起動時のナビゲーションパネ...
-
ユーザコントロールのイベント...
-
VBA ユーザーフォームの Keypre...
-
VBAのカレンダーコントロールに...
-
USB I/Oのデジタル信号をvbaで...
-
eMbeddedVBでのUDP通信プログラ...
-
webbrowserコントロールで右ク...
-
Excel VBA ファイル名をドラ...
-
アクセス特有の書き方?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
EXCELでactivexコントロールを...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
カメラスクロールするのを動画...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
Groupboxの配下のコントロール...
-
ユーザーフォームで動的(Me.Con...
-
VBA ユーザーフォームの Keypre...
-
vb.netで画面のコントロールId...
-
全てのオブジェクトのプロパテ...
-
間違えて配置してしまったコン...
-
chr関数の呼び出しで「プロ...
-
VBAのフォームでTextBoxがいっ...
-
OCXって何ですか?
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
コントロールを移動できない
-
Labelコントロールの(左右)余...
おすすめ情報