今同じ内容を表示するコンボボックスを二つ作ろうと思っているのですがつくり方がわかりません。
どのようにすれば一つのプログラムで二つのコンボボックスを作れるのでしょうか
例:
表示では
はい
いいえ
プログラム:
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も見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
Excel(エクセル)
-
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
Shapeコントロールの.NET移行方法
-
カメラスクロールするのを動画...
-
OCXって何ですか?
-
EXCELでactivexコントロールを...
-
C#で角が丸いテキストボックス
-
vb.netで画面のコントロールId...
-
コントロールを移動できない
-
Excel VBA ファイル名をドラ...
-
全てのオブジェクトのプロパテ...
-
ユーザコントロールのイベント...
-
WinAPIで電卓をクリック
-
EXCEL VBA リストビューの項...
-
ListViewのチェックボックスに...
-
USB I/Oのデジタル信号をvbaで...
-
ExcelVBAのコントロールの種類...
-
コントロール配列と同じような...
-
VBA ユーザーフォームの Keypre...
-
ActiveX DLL と ActiveXコント...
-
C# Form上に配置されたコントロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
ExcelVBAでListViewが使用できない
-
エクセルVBAでオプションボタン...
-
vb.netで画面のコントロールId...
-
C#で角が丸いテキストボックス
-
VBA ユーザーフォームの Keypre...
-
ユーザーフォームで動的(Me.Con...
-
フォーム上の現在アクティブな...
-
Excel VBA で Richtextboxを使...
-
ACCESS2010のVBAでフォーム内ク...
-
Groupboxの配下のコントロール...
-
コントロールを移動できない
-
コンボボックスの文字によるif...
-
(VBA)スピンボタンの大量...
-
Labelコントロールの(左右)余...
-
イメージコントロールに 読み込...
-
間違えて配置してしまったコン...
-
OCXって何ですか?
-
EXCELでactivexコントロールを...
おすすめ情報