| 
    
     |  | 皆さん、こんにちは。 Dropdownメソッドについての不可解な現象について・・。
 
 例えば、ユーザーフォーム(Userform1)にコンボボックス(Combobox1)、
 テキストボックス(Textbox1)、コマンドボタン(Commandbutton1)という
 タブオーダーで配置したとします。
 ここで、Userform1を表示させ、いきなり最初にフォーカスを得るコントロールである
 コンボボックスのドロップダウンリストを表示させることを考えました。
 タブキーを進めていって2順目にコンボボックスにフォーカスが移ったときも同様に
 ドロップダウンリストを表示させます。
 
 すぐ思いつくのは、Combobox1のEnterイベントで、
 
 Private Sub ComboBox1_Enter()
 ComboBox1.DropDown
 End Sub
 
 ですよね?
 ところがこれを実行すると、ドロップダウンリストがとんでもないところに
 表示されてしまうんです。
 それではと思い、今度は、ユーザーフォームのInitializeイベントではと思い
 
 Private Sub UserForm_Initialize()
 ComboBox1.DropDown
 End Sub
 も結果は同じでした。
 
 最後にActivateイベントはどうだろうと思い、
 Private Sub UserForm_Activate()
 ComboBox1.DropDown
 End Sub
 
 やっと正常表示してくれました。
 よって、上述の仕様でコンボボックスを動作させるのに
 
 Private FIRST_FLG As Long
 '======================
 Private Sub AAAComboBox1_Enter()
 If FIRST_FLG = 0 Then
 FIRST_FLG = 1
 Else
 ComboBox1.DropDown
 End If
 End Sub
 '==================
 Private Sub UserForm_Activate()
 ComboBox1.DropDown
 End Sub
 なんていうコードしないと仕様どおりになりませんでした。
 
 又、「そんなことないよ」なんていうご意見がありましたら、
 よろしくお願いします。
 
 |  |