Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


77 / 13620 ツリー ←次へ | 前へ→

【82001】VBAについて教えてください ヒマミン 22/3/15(火) 0:13 質問[未読]
【82002】Re:VBAについて教えてください どすん 22/3/15(火) 20:30 回答[未読]

【82001】VBAについて教えてください
質問  ヒマミン  - 22/3/15(火) 0:13 -

引用なし
パスワード
   ExcelのVBAについて教えてください。
3階層の表データをユーザーフォーム内の
ComboBox1・ComboBox2・Label1〜3に展開させたいのです。
添付の表がsheet1にあり、
ComboBox1で大カテゴリを選択し、ComboBox2で中カテゴリを選択し、
Label1に小カテゴリ1.を、Label2に小カテゴリ2.を、Label3に小カテゴリ3.を
表示させたいのですが、どのようにすればよいのか分からず困っています。
お分かりになる方教えてください。
よろしくお願いいたします。

【82002】Re:VBAについて教えてください
回答  どすん  - 22/3/15(火) 20:30 -

引用なし
パスワード
   まず、ユーザーフォームの初期化の所で、大カテゴリのコンボボックスのみ値をセット。
大カテゴリの値によって中カテゴリが決まるため値は入れないでおく。

Private Sub UserForm_Initialize()

  Me.ComboBox1.AddItem "大カテゴリ1"
  Me.ComboBox1.AddItem "大カテゴリ2"

End Sub


コンボ1の入力が終わったら、コンボ2の値をセットできる。
その際、コンボ1の値で条件分岐する。

Private Sub ComboBox1_AfterUpdate()

  If Me.ComboBox1.Text = "大カテゴリ1" Then
    Me.ComboBox2.AddItem "中カテゴリ1-1"
    Me.ComboBox2.AddItem "中カテゴリ1-2"
  
  ElseIf Me.ComboBox1.Text = "大カテゴリ2" Then
    Me.ComboBox2.AddItem "中カテゴリ2-1"
    Me.ComboBox2.AddItem "中カテゴリ2-2"
  End If
    
End Sub

同じようにコンボ2の値が決まったら、ラベルに値を入力。
これもコンボ2の値で条件分岐。

Private Sub ComboBox2_AfterUpdate()

  If Me.ComboBox2.Text = "中カテゴリ1-1" Then
    Label1.Caption = "小カテゴリ1-1-1"
    Label2.Caption = "小カテゴリ1-1-2"
    Label3.Caption = "小カテゴリ1-1-3"
  ElseIf Me.ComboBox2.Text = "中カテゴリ1-2" Then
    Label1.Caption = "小カテゴリ1-2-1"
    Label2.Caption = "小カテゴリ1-2-2"
    Label3.Caption = "小カテゴリ1-2-3"
'---
'---
'---

  End If
  
End Sub

流れとしては、こんな感じ。

77 / 13620 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free