ユーザーフォームのサイズ変更 ~ スピンボタンで操作 ~

ユーザーフォームのサイズを、任意に変更したくなった。
f:id:Infoment:20200117233459p:plain

ユーザーフォームの端っこを摘まんで、びよ~んとサイズ変更できると有難い。
しかし、そのような機能は無いようだ。

そこで、試しにスピンボタンを設けてみた。こんな感じだ。
f:id:Infoment:20200117233627p:plain

' ユーザーフォームの単位高さ。
' スピンボタンを押すたびに、この値の倍数で
' ユーザーフォームの高さを変更させる。
Const unit_width As Long = 50

Private Sub ChangeFormSize()
    ' ユーザーフォームのサイズ変更。
    ' 幅は、高さの約140%(√2倍)とした。
    ' ※馴染みのあるAサイズ(A3やA4など)の比率。
    UserForm1.Height = unit_width * SpinButton1.Value
    UserForm1.Width = UserForm1.Height * 2 ^ 0.5
End Sub

Private Sub SpinButton1_SpinDown()
    Call ChangeFormSize
End Sub

Private Sub SpinButton1_SpinUp()
    Call ChangeFormSize
End Sub

Private Sub UserForm_Initialize()
    ' スピンボタンの最大値と最小値を設定。
    SpinButton1.Min = 1
    SpinButton1.Max = 10
    ' 初期値。
    SpinButton1.Value = 5
    ' 初期値に合わせてユーザーフォームサイズ変更。
    Call ChangeFormSize
End Sub

動きとしては、こんな感じだ。
f:id:Infoment:20200117234254g:plain

悪くないかも。明日に続きます。

参考まで。