• ベストアンサー

ExcelVBAでユーザーフォーム内のリストボックスの設定について

 教えてください、ExcelVBAでユーザーフォーム内にリストボックスを作りました。 複数列・複数行のワークシートデータを参照する設定です。  列は12列で、一番左の列に番号をふってあります。  行は31行で、一行目がタイトル表示してあります。  質問なのですが、このリストボックスは全列・全行表示する大きさでユーザーフォーム内に作成してあるのですが、いざマクロを動かすと幅は問題ないんですが、高さが縮んで自動的にスクロールが表示されます。  ユーザーフォームを大きくしてリストボックスも大きくしてやっても同じです。 このリストボックスの高さを固定させる設定はどうすれば良いでしょうか。

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

  • ベストアンサー
  • ohkazu
  • ベストアンサー率25% (1/4)
回答No.1

ユーザフォームをロードするときにでもリストボックスのプロパティを設定してはどうですか? つぎの例は高さこそ指定していませんが・・・こんな感じでhighを設定すればなんとかなるのではないでしょうか。 With ctrl  .Clear  .ListRows = 10  .ColumnCount = 2  .ColumnWidths = "20 pt;120 pt"  .ListWidth = "140 pt" End With

bokkoresyachou
質問者

お礼

 早速ありがとうございます。いろいろやってみてとりあえず、リストボックスの目的が計算結果の表示なので Enabled を False Locked を True Integral Height を False に設定してみたところ、リストボックスが縮まなくなりました。しばらくこれでやってみます。 アドバイスありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

リストボックス、ユーザーフォームともにHeightプロパティがありますから、それを大きくしてみてはどうなりますか。フォームもスクロールバーもありにしてどうなりますか。 むしろリストボックスに持ってこず、生のワークシートのSelectionChangeイベントで考えてはどうでしょう。

bokkoresyachou
質問者

お礼

早速ありがとうございます。いろいろやってみてとりあえず、リストボックスの目的が計算結果の表示なので Enabled を False Locked を True Integral Height を False に設定してみたところ、リストボックスが縮まなくなりました。しばらくこれでやってみます。 アドバイスありがとうございました。

関連するQ&A