Excel VBA質問箱 IV

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

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


75695 / 76738 ←次へ | 前へ→

【5475】Re:コンボボックスのリスト選択について
回答  つん E-MAIL  - 03/5/15(木) 12:46 -

引用なし
パスワード
   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を設定出来たらいいんだけど、それだとエラーになるので、苦肉の策で、リストの最後に空白をリストしました。

説明が難しい(>_<) わかるかなー?

もっとスマートなやりかたがあるかもしれないけど、
私にはこれぐらいしか思いつかないですにゃ。

1 hits

【5455】コンボボックスのリスト選択について KAZ 03/5/14(水) 18:21 質問
【5475】Re:コンボボックスのリスト選択について つん 03/5/15(木) 12:46 回答
【5484】Re:コンボボックスのリスト選択について JuJu 03/5/15(木) 15:12 回答
【5489】Re:コンボボックスのリスト選択について KAZ 03/5/15(木) 16:24 お礼

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