和風スパゲティのレシピ

日本語でコーディングするExcelVBA

図形(Shape)を縦横比固定で拡大縮小する - LockAspectRatio

図形(Shape)を縦横比固定で拡大縮小する方法を解説します。

ShapeオブジェクトのLockAspectRatioプロパティにmsoTrueを指定してから、
Width・Heightプロパティでサイズを変更します。

基本構文

' 図形のプロパティ「縦横比を固定」をチェック☑
対象Shape.LockAspectRatio = msoTrue

対象Shape.Width = 幅(単位:ポイント)
' または
対象Shape.Height = 高さ(単位:ポイント)

※ Width/Heightの片方を変更すればもう片方も自動で変更されます。

サンプルコード

Dim 対象図形 As Shape
Set 対象図形 = ActiveSheet.Shapes("Picture 1")

' 縦横比を固定して幅を200ポイントに
対象図形.LockAspectRatio = msoTrue
対象図形.Width = 200

' 縦横比を固定して高さを200ポイントに
対象図形.LockAspectRatio = msoTrue
対象図形.Height = 200

' 縦横比を固定してサイズを1.5倍に
対象図形.LockAspectRatio = msoTrue
対象図形.Width = 対象図形.Width * 1.5

解説

図形(Shape)を縦横比固定で拡大縮小するには、
LockAspectRatioプロパティにmsoTrueを指定します。

この状態でWidthまたはHeightを変更すると、
もう一方のサイズも縦横比に合わせて自動調整されます。

対象図形.LockAspectRatio = msoTrue
対象図形.Width = 200 ' ← ここでHeightも追従する

 

LockAspectRatioを指定した後の図形の拡大・縮小は、
サンプルの通りWidth/Heightプロパティへの代入で行います。

詳しくはこちらの記事をどうぞ
www.limecode.jp