教えて!ExcelVBA!

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

【ExcelVBA フォーム&コントロール】イメージの大きさに合わせてた画像の縦横比率を設定する方法を教えて!

構文

構文は以下の通りです。

イメージ名.PictureSizeMode = 定数

解説

ImageコントロールのPictureSizeModeプロパティは、画像のサイズ調整が可能です。定数には、画像サイズの表示方法を指定します。定数には以下のいずれかを指定します。

定数 内容
fmPictureSizeModeClip 0 画像を切り取り、コントロールに収めます。コントロールのサイズを超える部分は表示されません。
fmPictureSizeModeStretch 1 画像をコントロールに合わせて引き伸ばします。縦横比が崩れる可能性があります。
fmPictureSizeModeZoom 3 画像の縦横比率を保ちつつ、コントロールに収めます。余白ができる場合があります。
fmPictureSizeModeAutoSize 4 画像を元のサイズに合わせ、コントロールのサイズを変更します。縦横比が保たれます。
fmPictureSizeModeCenter 5 画像をコントロール内で中央に配置します。余白ができる場合があります。

使い方

具体的な使い方を紹介します。

1.イメージを切り抜いて表示する

Private Sub AdjustImageClip()
    Me.Image1.PictureSizeMode = fmPictureSizeModeClip
End Sub

この例では、イメージを切り抜いて表示するように設定しています。フォームの領域を超える部分は表示されません。

2.イメージを引き伸ばして表示する

Private Sub AdjustImageStretch()
    Me.Image1.PictureSizeMode = fmPictureSizeModeStretch
End Sub

こちらの例では、イメージを引き伸ばして表示します。フォームの領域に合わせてイメージが拡大・縮小されます。

3.イメージを中央に配置して余白を残す

Private Sub AdjustImageZoom()
    Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
End Sub

この例では、イメージを中央に配置し、余白が生じないように表示されるように設定しています。

プログラミング例

以下に、プログラミング例を紹介します。

Private Sub CommandButton1_Click()
    ' イメージの縦横比率を切り替える
    If Me.Image1.PictureSizeMode = fmPictureSizeModeClip Then
        Me.Image1.PictureSizeMode = fmPictureSizeModeStretch
    Else
        Me.Image1.PictureSizeMode = fmPictureSizeModeClip
    End If
End Sub

この例では、ボタンがクリックされるたびに、イメージの表示モードが切り替わります。

まとめ

PictureSizeModeプロパティを使用することで、ユーザーフォーム上で画像を適切に表示することができます。是非活用してください。