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

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


Excel97,2000



戻る


Excel Word Access VBA! モーグ