即効テクニック |
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