| 
    
     |  | KAZ さん、こんにちは 
 私もやってみました。
 KAZさんのおっしゃるように、動作したのでビックリしました(@_@)
 でも、ステップ実行してみて判ったのですが、
 Downキー,Upキーを押すだけで、ListIndexの値は変化するので、
 KeyDownイベントの中で、ListIndexの値を触っても、イベントを抜ける際に、
 その値からまたプラス、マイナスされるようです。
 ので、こんなやりかたはどうでしょうか?
 
 '==============================================
 Private Sub UserForm_Initialize()
 With ComboBox1
 .AddItem "1"
 .AddItem "2"
 .AddItem "3"
 .AddItem "4"
 .AddItem "5"
 .AddItem ""
 .ListIndex = 0
 End With
 End Sub
 
 Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 With ComboBox1
 Select Case KeyCode
 Case 40
 If .ListIndex = .ListCount - 2 Then
 .ListIndex = -1
 End If
 Case 38
 If .ListIndex = 0 Then
 .ListIndex = .ListCount - 1
 End If
 End Select
 End With
 End Sub
 '==============================================
 
 Downキーの時は、リストの最後に来た時に、ListIndexを-1に設定します。
 そしたら、抜ける時に「0」になります。
 Upキーの時は、リストの最初に来たときに、ListCountを設定出来たらいいんだけど、それだとエラーになるので、苦肉の策で、リストの最後に空白をリストしました。
 
 説明が難しい(>_<) わかるかなー?
 
 もっとスマートなやりかたがあるかもしれないけど、
 私にはこれぐらいしか思いつかないですにゃ。
 
 
 |  |