アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
ComboBox1 を選択したら
ListBox1 の値を表示させたい

ComboBox1 
2019 
2020
をどちらか選択したら
ListBox1
条件1
2019
2019/4/1
2019/5/1
2019/6/1

条件2
ListBox1
2020
2020/4/1
2020/5/1
2020/6/1

わたしがここまで作りました。
あともう少しなんですが。
よろしくお願いいたします。

ComboBox1_ChangeしたときListBox1をクリアにしたい
おしえてくれませんでしょうか
画像添付あります。
Select Case でおしえてくれませんでしょうか


Private Sub ComboBox1_Change()

i = Cells(Rows.Count, 2).End(xlUp).Row

If ComboBox1.Value = "2019" Then
For x = 7 To i
ListBox1.AddItem Range("B" & x).Value
Next
Else
For x = 7 To i
ListBox1.AddItem Range("C" & x).Value
Next
End If


End Sub

Private Sub UserForm_Initialize()
Dim i As Long
With ComboBox1
.AddItem "2019"
.AddItem "2020"
End With
End Sub

「ComboBoxとListBoxとの連動」の質問画像

質問者からの補足コメント

  • うーん・・・

    Select Case ComboBox1.Value
    Case 2019

    For x = 7 To i
    ListBox1.AddItem Range("B" & x).Value
    Next
    Case 2020
    For x = 7 To i
    ListBox1.AddItem Range("C" & x).Value
    Next
    End Select

    ここまでいきましたが、表示されるのが
    ともに2019/5/1
    つぎに2020を選ぶと2020/1/5
    ひとつだけです。
    しかもクリアしていなので、
    2019/5/1
    2020/1/5
    表示されてしまいます。

      補足日時:2020/03/20 21:28
  • うーん・・・

    申し訳ございませんできました。
    ComboBox1 change
    したときクリアする方法おしえてくれませんでしょうか

      補足日時:2020/03/20 21:32
  • ListBox1.clearでうまくいきました。

      補足日時:2020/03/20 21:35
  • どう思う?

    わたしがつくったのですが動作は問題ないと思いますが、
    心配なのでよろしいでしょうか。
    Private Sub ComboBox1_Change()
    ListBox1.Clear
    Select Case ComboBox1.Value
    Case 2019
    With ListBox1
    .AddItem "2019/04/01"
    .AddItem "2019/05/01"
    .AddItem "2019/06/01"
    End With
    Case 2020
    With ListBox1
    .AddItem "2020/04/01"
    .AddItem "2020/05/01"
    .AddItem "2020/06/01"
    End With
    End Select
    End Sub
    2回にわけます。入力文字数の制限があるため

      補足日時:2020/03/20 21:39
  • うーん・・・

    Private Sub ComboBox1_Change()
    ListBox1.Clear
    Select Case ComboBox1.Value
    Case 2019
    With ListBox1
    .AddItem "2019/04/01"
    .AddItem "2019/05/01"
    .AddItem "2019/06/01"
    End With

    Case 2020
    With ListBox1
    .AddItem "2020/04/01"
    .AddItem "2020/05/01"
    .AddItem "2020/06/01"
    End With
    End Select
    End Sub
    わたしこちらでなんとかいきました。
    問題ないでしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/03/20 21:40

A 回答 (1件)

Private Sub ComboBox1_Change()


Dim i As Long, x As Long
Dim rst As String

ListBox1.Clear

i = Cells(Rows.Count, 2).End(xlUp).Row

Select Case ComboBox1.Value
Case "2019": rst = "B"
Case "2020": rst = "C"
End Select

For x = 7 To i
ListBox1.AddItem Range(rst & x).Value
Next

End Sub

Private Sub UserForm_Initialize()

With ComboBox1
.AddItem "2019"
.AddItem "2020"
End With

End Sub

こんなかな?
この回答への補足あり
    • good
    • 0
この回答へのお礼

いつもお世話になっております。
めぐみん様のとおり自分で考えて
どうしてものとき質問致します
ここまで、やれるわたしにびっくりです。
なんとなくこうやればいいのかなというかんじです。
ありがとうございました

お礼日時:2020/03/20 21:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!