|
▼レッズ命 さん:
よこからすみません。
>コンボボックス1を空白にした時にのみドロップダウンするようなのですが、
↑ここに着目して、
ComboBox1_Change()直後に {ENTER}でリスト選択を確定すると、
ComboBox1のドロップダウンが閉じますので、
そのあとで、ComboBox2に SetFocusして ドロップダウン▼する
ようにしてみました。
(RowSourceの範囲取得部分はもう少しまとめたほうが読みやすい
と思いますが、とりあえず、ノーチェックです)
'-----------
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
SendKeys "{ENTER}", True
End If
End Sub
'----------
Private Sub ComboBox1_AfterUpdate()
Dim Rng1 As Range
Dim Rng4 As Range
Dim Rng5 As Range
Dim Rng10 As Range
Dim Rng6 As Range
Dim ss As String
Set Rng1 = Columns("A").Find(What:="雑貨", lookat:=xlWhole)
Set Rng4 = Columns("A").Find(What:=ComboBox1.Value, lookat:=xlWhole)
Set Rng5 = Rng4.Offset(1, 0)
Set Rng10 = Rng4.End(xlDown)
With ComboBox2
.BackColor = &H80000005
.Enabled = True
.Locked = False
If ComboBox1.Value = "" Then
ss = Cells(1, 2).Address(0, 0) ' & ":" & Cells(1, 2).Address
Else
If Rng5.Value = "" Then
Set Rng6 = Rng4.End(xlDown).Offset(-1, 0)
If Rng10.Value <> "雑貨" Then
ss = Cells(Rng4.Row, 2).Address(0, 0) & ":" _
& Cells(Rng6.Row, 2).Address(0, 0)
Else
ss = Cells(Rng4.Row, 2).Address(0, 0) & ":" _
& Cells(Rng1.Row - 3, 2).Address(0, 0)
End If
Else
Set Rng6 = Rng4
ss = Cells(Rng4.Row, 2).Address(0, 0) & ":" _
& Cells(Rng6.Row, 2).Address(0, 0)
End If
End If
.RowSource = "買い物リスト!" & ss
.SetFocus
End With
End Sub
'----------
Private Sub ComboBox2_Enter()
ComboBox2.DropDown '▼
End Sub
|
|