HOME > 即効テクニック > Excel VBA > 図形操作関連のテクニック > マウスクリックでShapeの複製

即効テクニック

図形操作関連のテクニック

マウスクリックでShapeの複製

(Excel 97/2000)

Shapeオブジェクトは・・・

・Duplicateメソッドがある
・マクロ登録ができる

の2点を応用すると、複製元のShapeオブジェクトに複製を行うマクロ登録をして、クリック時にDuplicateメソッドを実行するということが可能です。

Sub DuplicateShape()

Dim Sh As Shape

'Application.CallerでクリックされたShape名を取得
Set Sh = ActiveSheet.Shapes(Application.Caller)

’複製
Sh.Duplicate

End Sub
上記プロシージャを実行すると、複製されたShapeは副セもとのOnActionプロパティーを継承しますので、形状変更、書式変更などを行った後、再度クリックすれば、変更後のShapeが複製されることになります。

※Shapeの全削除
Activesheet.Shapes.SelectAll
Selection.Delete
※マクロの全解除
Dim Sh As Shape

For Each Sh In ActiveSheet.Shapes
Sh.OnAction = ""
Next