- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【ExcelVBA】ユーザフォーム初期化時にリストボックスのサイズを変更したい)
ExcelVBAでユーザフォーム初期化時にリストボックスのサイズを変更する方法
このQ&Aのポイント
- ExcelのVBAを利用してマクロを作成している際に、ユーザフォームに設定したリストボックスの高さを調節したいと思っています。
- しかし、コードを実行してもリストボックスの高さが変化しない問題に直面しています。
- 正しいコードの記述方法に詳しい方からのご指導をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
---------------------------- With UserForm1.ListBox1 .AddItem "テスト1" .AddItem "テスト2" .Height = 50 End With ---------------------------- .Height=50を下記のように最初に持ってくれば出来ると思います With UserForm1.ListBox1 .Height = 50 .AddItem "テスト1" .AddItem "テスト2" End With
その他の回答 (1)
- takachan7272
- ベストアンサー率29% (179/616)
回答No.2
takachan7272です。 実は私も理由はわかりません。 コードを1行ずつ実行すると、調整されるんですけどね・・・ リスト(値)を設定せずに高さだけ調整させると、 これは問題なく処理されます。 リストを設定してからだとダメなんですよね。 例えば、質問に書かれたままのコードを Userform_Clockで実行すると 問題なく処理されます。 イベント発生や、そのタイミング等が絡んでいるのかもしれませんね。 何かモヤモヤ感が残ってしまいました。 私も正確な理由が知りたいです。
質問者
お礼
再度ありがとうございます! なるほど…。 たしかにおっしゃるとおり、不可解な現象ですね。 リストボックスの高さの調整はうまくいかないのですが、ユーザフォーム自体の高さ調整であれば、なんの問題もなく動作するんですけどね…。 新たな回答が寄せられるのを待ってみましょう!
お礼
takachan7272さん、早速ありがとうございます! ご教授いただいたとおり、うまくいきました! ただ、なぜ Heightを最初に持って行く必要があるのかいまいち理解できませんが…。 もしご存じでしたらお教えいただけますか? とりあえずこの件について回答があるか待ってみますが、しばらくなければ質問を締め切ります。