|
▼じょにー さん:
>実行した所Module1の[ActiveSheet.Shapes(ActiveSheet.Shapes.Count).OnAction = "DelShapeX]この部分で
>「実行時エラー'1004':
>アプリケーション定義またはオブジェクト定義のエラーです。」
>と言うのが出ました。
>イベントプロシージャの追加したコードは、シート1の構成が無いと、何のこっちゃとなるので、あえて記載していませんが。
【70021】に、図形に自分自身を消すマクロを登録しておいて、
●図形のほうがクリックされたら、その図形を消すようする
●下のセルがダブルクリックされたら、図形を消す
というコードを投稿してありますが、
こちらは試されたんでしょうか?
> ----
> ◎があるセルをダブルクリックするのは セルの上にある図形が
> 邪魔をしてダブルクリックしにくいことがあるので、
> ◎を描くとき、マクロを登録しておいて(◆追加1 の行)、
>
> (1)消したい図形の下にあるセルがダブルクリックされたら、これまでどおり
> その図形の名前を指定して DelShapeプロシージャを呼び出す。
> (2)そうではなく、図形のほうがクリックされたら、
> DelShape2プロシージャ(◆追加2 のほう)が自動で呼ばれて、その
> クリックされた図形の名前(Application.Caller) を指定して内部で
> DelShapeを呼び出す
> '---- 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
>
|
|