動作検証バージョン: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
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
[スポンサードリンク]
- Newer:VBAで系列名をセル参照に
- Older:軸ラベルをVBAでセル参照にするには
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 画像に対してScaleWidthメソッドを実行する