Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 画像に対してScaleWidthメソッドを実行する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2204 ビルド15128.20224 Microsoft Store)

「vba 画像 ScaleWidth」
といった検索キーワードでアクセスがありました。

拙著『理解Excel VBA/図形操作の基本』でも解説しているScaleWidthメソッドを使って、画像の横幅を拡大/縮小するにはどのようなコードを書けばいいのか、探していた方による検索でしょうか。

どのアプリケーションかがわかりませんので、ここでは簡単なExcelマクロをご紹介しておきます。

全Shapeの横幅を変更するサンプルマクロ

画像が存在するシートがアクティブな状態で以下のExcelマクロを実行すると、画像の横幅がすべて半分に縮小されます。

Sub 画像の横幅を半分にする()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  If shp.Type = msoPicture Then
   shp.LockAspectRatio = msoFalse
   shp.ScaleWidth _
     Factor:=1 / 2, _
     RelativeToOriginalSize:=msoFalse
  End If
 Next
End Sub

サンプルマクロで行っている処理

アクティブシート上の全Shapeに対してFor Each~Nextループを回して

For Each shp In ActiveSheet.Shapes

Shape.Typeプロパティを使ってShapeが画像かを判定し、画像だったら

 If shp.Type = msoPicture Then

Shape.LockAspectRatioプロパティで縦横比のロックを解除し、

  shp.LockAspectRatio = msoFalse

Shape.ScaleWidthメソッドで横幅を半分にしています。

  shp.ScaleWidth _
    Factor:=1 / 2, _
    RelativeToOriginalSize:=msoFalse

最終更新日時:2022-05-28 13:32

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 画像に対してScaleWidthメソッドを実行する

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.