図形を拡大・縮小してアニメーションっぽく動かす【ExcelVBA】
Shape.SchaleHeightメソッド 高さを拡大・縮小
Shape.SchaleWidthメソッド 幅を拡大・縮小
■引数
Factor → 高さの比率を指定 1.5であれば50%拡大 0.5であれば半分サイズ
RelativeToOriginalSize → 基準をどうするか
元のサイズを基準にする(msoTrue)
今のサイズを基準にする(msoFalse)
Scale → 位置をどこを基準にするか
右下隅の位置を保持して拡大縮小(msoScaleFromBottomRight)
中心の位置を保持して拡大縮小(msoScaleFromMiddle)
左上隅の位置を保持して拡大縮小(msoScaleFromTopLeft)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Public Sub 球が転がるぞー()
With Sheet1.Shapes("球")
Do
'垂直方向に5ポイント移動
.IncrementTop 5
'図形を中心の位置を保持して拡大
.ScaleHeight factor:=1.02, relativetooriginalsize:=msoFalse, scale:=msoScaleFromMiddle
.ScaleWidth factor:=1.02, relativetooriginalsize:=msoFalse, scale:=msoScaleFromMiddle
'100ミリ秒待機
Application.Wait [Now()] + 100 / 86400000
Loop
End With
End Sub