• ベストアンサー

【VBA】ユーザーフォームのサイズ状態の取得について

いつもお世話になっております。 現在、VBAにてユーザーフォームのサイズ状態を知る方法を探しています。 操作しているユーザーフォームが最小化、最大化状態であることを知る構文はありますでしょうか。 宜しくお願いいたします。

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

  • ベストアンサー
  • kuma3f
  • ベストアンサー率63% (28/44)
回答No.1

何のVBAかが分かりませんので、思われていることと違っていましたらすみません。 ExcelのVBAの場合、通常は最大化、最小化ボタンが無いので、表示か、非表示かの判断でよいのでいたら、Visible = TrueかFalseで判断されたらよいと思います。 例えば UserForm1.Show vbModeless でモードレスでユーザフォームを表示、非表示させる場合、 If UserForm1.Visible = True Then MsgBox "ユーザフォーム表示中" Else MsgBox "ユーザフォーム非表示" End If で判断できると思います。 また、 VBAでユーザフォームに最大化、最小化ボタンをつけることもできるので、 つけられて判断される場合は、ユーザフォームのサイズで判断されたらよいと思います。 例えば、 ユーザフォームのサイズの高さ(縦の大きさ)が標準時より大きいか小さいかで判断します。 (1)に標準時の高さをセットする Dim サイズ As Long サイズ = 180'←標準時のサイズの高さ(1) If UserForm1.Height = サイズ Then MsgBox "ユーザフォーム標準サイズ" Else If UserForm1.Height < サイズ Then MsgBox "ユーザフォーム最小化" Else MsgBox "ユーザフォーム最大化" End If End If

moncyasan
質問者

お礼

回答ありがとうございます。 > 何のVBAかが分かりませんので、思われていることと違っていましたらすみません。 説明不足ですみません。エクセルです。 ユーザフォームのサイズをセットしたらできました ありがとうございます。 これで今日はゆっくり眠れそうですm(__)m