
今同じ内容を表示するコンボボックスを二つ作ろうと思っているのですがつくり方がわかりません。
どのようにすれば一つのプログラムで二つのコンボボックスを作れるのでしょうか
例:
表示では
はい
いいえ
プログラム:
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ランキング
-
すぐにイライラしてしまいます。
-
tagプロパティについて
-
C# FlowLayoutPanelにて
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
ワークシート上のコントロール...
-
エクセルVBAでオプションボタン...
-
OCXって何ですか?
-
Groupboxの配下のコントロール...
-
AccessのDataGridコントロール...
-
visual basic.netでのカウント...
-
ACCESSフォームにコント...
-
VBAでタブのページを削除す...
-
エクセル・オプションボタン・...
-
ユーザーフォームで動的(Me.Con...
-
全てのオブジェクトのプロパテ...
-
textboxの背景色を10進数から設定
-
同じコンボボックスを二つ以上...
-
IPアドレスを取得する
-
実行画面が崩れてしまう
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
VBA ユーザーフォームの Keypre...
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
エクセル コントロールツール...
-
ユーザーフォームで動的(Me.Con...
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
excel vbaでユーザーフォームに...
おすすめ情報