ワークシート上にある図形を、同一ワークシート上の別の位置に移動させるVBAを紹介します。

上図のように、青色の「ひし形1」をJ列に移動させるVBAは以下のようになります。
Sub 図形移動()
ActiveSheet.Shapes("ひし形 1").Left = Range("J2").Left
End Sub
「ひし形1」の左端を、セル「J2」の左端に合わせる。という記述です。
実行すると、下図のように「ひし形1」がセル「J2」に移動します。

このように、移動先のセルを指定することで、わざわざ切り取り(Cut)やコピー(Copy)をしなくても図形の位置を移動させることができるのです。
もし、左端だけではなく、上端も合わせたい、、、というときは、
Sub 図形移動()
ActiveSheet.Shapes("ひし形 1").Left = Range("J2").Left
ActiveSheet.Shapes("ひし形 1").Top = Range("J2").Top
End Sub
このように、「Left」のほかに「Top」も合わせて記述することで、図形の左端や上端を目的のセルの位置に移動させることができるのです。
コメント