ユーザーフォームのサイズ変更 ③ 画像を張り付けてみる
先日はスピンボタンで、ユーザーフォームのサイズを段階的に変化させてみた。
infoment.hatenablog.com
今日はこのユーザーフォームに、画像を表示することに挑戦する。
もともと今回のネタは、画像の中身をユーザーフォームに表示したいというのが切っ掛けだった。そこで今回は、Imageコントロールで画像を表示してみよう。
画像は決め打ちで準備する。
Private Sub UserForm_Initialize() ' スピンボタンの最大値と最小値を設定。 SpinButton1.Min = 1 SpinButton1.Max = 6 ' 初期値。 SpinButton1.Value = 3 ' 今回追加。 Image1.Picture = LoadPicture("C:\Temp\Sample.jpg") End Sub
イメージのサイズは、ユーザーフォームのサイズに追従して欲しい。そこで、イメージの左上を起点として、10ポイントずつ内側に収まるようにしてみる。
色々と数値を調整して、このようになった。
Private Sub SpinButton1_Change() Static Dict As Scripting.Dictionary If Dict Is Nothing Then Set Dict = Devisor(12) End If ' ユーザーフォームのサイズ変更。 ' 高さは、高さの約71%(1/√2倍)とした。 ' ※馴染みのあるAサイズ(A3やA4など)の比率。 UserForm1.Width = unit_width * Dict(SpinButton1.Value) UserForm1.Height = UserForm1.Width / 2 ^ 0.5 ' 今回追加。 With Image1 .Width = UserForm1.Width - 30 .Height = UserForm1.Height - 72 .Top = 40 .Left = 10 End With End Sub
テスト結果は、まずまずと言ったところか。
明日に続きます。
参考まで。