|
'---- Module1 ------
のほうは、こうしたほうが良かったかもしれません。
Public Sub AddShape(ByVal Target As Range)
With Target
.HorizontalAlignment = xlCenter
With ActiveSheet.Shapes.AddShape(msoShapeDonut, _
.Left, .Top, .Width, .Height)
.Fill.Transparency = 0#
.Line.ForeColor.SchemeColor = 64
.Line.BackColor.RGB = RGB(255, 255, 255)
.OnAction = "Module1.DelShape2" '◆追加1
.TopLeftCell.Select
End With
End With
End Sub
Public Sub DelShape(ShpName As String)
With ActiveSheet.DrawingObjects(ShpName)
.BottomRightCell.Select
.Delete
End With
End Sub
Public Sub DelShape2() '◆追加2
DelShape Application.Caller
End Sub
----
◎があるセルをダブルクリックするのは セルの上にある図形が
邪魔をしてダブルクリックしにくいことがあるので、
◎を描くとき、マクロを登録しておいて(◆追加1 の行)、
(1)消したい図形の下にあるセルがダブルクリックされたら、これまでどおり
その図形の名前を指定して DelShapeプロシージャを呼び出す。
(2)そうではなく、図形のほうがクリックされたら、
DelShape2プロシージャ(◆追加2 のほう)が自動で呼ばれて、その
クリックされた図形の名前(Application.Caller) を指定して内部で
DelShapeを呼び出す
という感じです。
|
|