教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーム内のイメージの大きさに合わせてた画像の縦横比率を設定する方法

構文

構文は以下の通りです。

イメージ名.PictureSizeMode = 表示モード

解説

イメージ名.PictureSizeModeを使用して、フォーム内のイメージコントロールに表示される画像の表示モードを設定できます。

【表示モード】

定数 内容
fmPictureSizeModeClip 0 画像はクリップされ、イメージコントロールのサイズに合わせて一部のみ表示されます
fmPictureSizeModeStretch 1 画像は縦横比を無視して、イメージコントロール全体に引き伸ばされます
fmPictureSizeModeZoom 3 画像の縦横比を保持しながら、イメージコントロール内に収まるように拡大または縮小されます

プログラミング例

具体的なプログラミング例を紹介します。

Sub フォームに画像を表示する()
    Dim 画像パス As String
    画像パス = "C:\Users\画像フォルダ\example.jpg"  ' 画像のパスを設定
    With UserForm1.Image1
        .Picture = LoadPicture(画像パス)
        .PictureSizeMode = fmPictureSizeModeZoom  ' 画像の縦横比率を保持して表示
    End With
    UserForm1.Show
End Sub

上記のプログラムは、UserForm1.Image1.PictureSizeModeをfmPictureSizeModeZoomに設定することで、画像の縦横比を保持しながら表示されるようにします。

まとめ

PictureSizeModeを使用して、画像の表示モードを調整できます。特にfmPictureSizeModeZoomを使用すると、画像の縦横比を保ちながら、イメージコントロールのサイズに合わせて拡大縮小されるため、画像が歪むことを防ぐことができます。