• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【ExcelVBA】ユーザフォーム初期化時にリストボックスのサイズを変更したい)

ExcelVBAでユーザフォーム初期化時にリストボックスのサイズを変更する方法

このQ&Aのポイント
  • ExcelのVBAを利用してマクロを作成している際に、ユーザフォームに設定したリストボックスの高さを調節したいと思っています。
  • しかし、コードを実行してもリストボックスの高さが変化しない問題に直面しています。
  • 正しいコードの記述方法に詳しい方からのご指導をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

----------------------------  With UserForm1.ListBox1   .AddItem "テスト1"   .AddItem "テスト2"   .Height = 50  End With ---------------------------- .Height=50を下記のように最初に持ってくれば出来ると思います With UserForm1.ListBox1 .Height = 50 .AddItem "テスト1" .AddItem "テスト2" End With

yoko14820
質問者

お礼

takachan7272さん、早速ありがとうございます! ご教授いただいたとおり、うまくいきました! ただ、なぜ Heightを最初に持って行く必要があるのかいまいち理解できませんが…。 もしご存じでしたらお教えいただけますか? とりあえずこの件について回答があるか待ってみますが、しばらくなければ質問を締め切ります。

その他の回答 (1)

回答No.2

takachan7272です。 実は私も理由はわかりません。 コードを1行ずつ実行すると、調整されるんですけどね・・・ リスト(値)を設定せずに高さだけ調整させると、 これは問題なく処理されます。 リストを設定してからだとダメなんですよね。 例えば、質問に書かれたままのコードを Userform_Clockで実行すると 問題なく処理されます。 イベント発生や、そのタイミング等が絡んでいるのかもしれませんね。 何かモヤモヤ感が残ってしまいました。 私も正確な理由が知りたいです。

yoko14820
質問者

お礼

再度ありがとうございます! なるほど…。 たしかにおっしゃるとおり、不可解な現象ですね。 リストボックスの高さの調整はうまくいかないのですが、ユーザフォーム自体の高さ調整であれば、なんの問題もなく動作するんですけどね…。 新たな回答が寄せられるのを待ってみましょう!

関連するQ&A