|
▼おばさん さん:
>以下のようにして見ましたが、
>Range("D:D")の所では、DropDownしません。
>他に何か原因あるでしょうか?
>Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
> If Not Intersect(Target, Range("A:A")) Is Nothing Then
> If Not Intersect(Target, Range("A:J")) Is Nothing Then
> UserForm1.Show 0
> UserForm1.ComboBox1.DropDown
> ElseIf Not Intersect(Target, Range("D:D")) Is Nothing Then
> UserForm1.ShowShow 0
> UserForm1.ComboBox3.DropDown
> End If
> End If
> End If
>End Sub
このプロシージャって、End Ifが不必要に多く、構文エラーになってませんか?
インデントをきちんとつけて、
Ifに対応する End Ifが どのEnd If文 なのかを一目見て分かるようにしておく
ことをお勧めします。
で、
おやりになりたいことは日本語でいうとどういうことになりますか?
仮に、
カーソルが A列に移動したら、ComboBox1をドロップダウンさせる。
カーソルが D列に移動したら、ComboBox3 をドロップダウンさせる。
という2つの分岐なら、
> If Not Intersect(Target, Range("A:J")) Is Nothing Then
は不要で、
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
'If Not Intersect(Target, Range("A:J")) Is Nothing Then
UserForm1.Show 0
UserForm1.ComboBox1.DropDown
ElseIf Not Intersect(Target, Range("D:D")) Is Nothing Then
UserForm1.Show 0
UserForm1.ComboBox3.DropDown
End If
'End If
'End If
End Sub
と記述するだけで、
Selectionが A列に移ったときには ComboBox1.dropDownメソッドが働き、
Selectionが D列に移ったときには ComboBox3がdropDownされると思いますが?
|
|