Excel VBA コンボボックスについて VBA初心者です。
Excel VBA コンボボックスについて VBA初心者です。 コンボボックスに検索文字を入力する際、ドロップダウンリスト部を常に表示させるようにするには「ComboBox1.DropDown」を入力すればいいと思いますが、 下記のようにコードを入力すると画像のように離れた位置にリストが表示されてしまいます。 一度立ち上がったフォームやコンボボックスをクリックすると正常な動きになりますが、調べても分からず困っています。 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "りんご" .AddItem "みかん" .AddItem "ぶどう" End With ComboBox1.DropDown End Sub どうか教えて下さい。
Visual Basic・64閲覧・100
ベストアンサー
ComboBox1.DropDown を UserForm_Initialize から UserForm_Activate に移動してください。 ComboBox1.DropDown を Initialize の時点で実行すると コンボボックスが画面の左上の位置にあるものとして実行される。 その後 Activate の時点でフォームだけを現在の位置へ表示するようです。 また、ユーザーフォームを表示する際に UserForm1.Show Unload UserForm1 と UserForm1 を Unload しないと、メモリ上にユーザーフォームの情報が残り続けるため 表示の度に Userform_Initialize が実行されなくなるので要注意です! 一度フォームを表示した後なら正常に表示できているのもしっかりとユーザーフォームの Unload がされていないのが原因だと思います。
質問者からのお礼コメント
大変勉強になりました。 他の方も同様に解決に導いてくださりましてありがとうございます。 詳しく説明して頂いたのでこちらをベストアンサーに選ばせて頂きました。
お礼日時:1/23 21:33