|
2回目の投稿となります。前回の投稿で、kanabunさまが、おっしゃっていただいた様に今回はもう少し内容を具体的に質問させて
もらいます。ワークシートのセル上でダブルクリックした時にクリックしたセル上にシャイプがあれば、消して、無ければ無地の2重丸の
シェイプを配置をすると言うマクロを作りたくて、色んな所から、引用して作ってみましたが、単体での、シェイプを配置したり、シェイプを
消してみたり、シェイプが配置してあるかの判断とかは、ちゃんと動きましたが、それをひとつにまとめると、最初の数回は、思った通りに動きましたが、何回か
行っているうちにシェイプを配置しなくなるとか、シェイプの消去の部分でエラーが出るなどの不具合が出てきました。一応見難いとは、思いますが下記に記載したコードを添付しておきましたので、
おかしな所があるのであれば、ご指導下さい。
----Sheet1に記載----
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sh As Shape
Dim c As Long
For Each sh In ActiveSheet.Shapes
If Not Application.Intersect(Target, sh.TopLeftCell) Is Nothing Then
Call Module1.DelShape(Target)
Else
Call Module1.AddShape(Target)
End If
Next sh
End Sub
----Module1に記載----
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sh As Shape
Dim c As Long
For Each sh In ActiveSheet.Shapes
If Not Application.Intersect(Target, sh.TopLeftCell) Is Nothing Then
Call Module1.DelShape(Target)
Else
Call Module1.AddShape(Target)
End If
Next sh
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Call Module1.AddShape(Target)
End Sub
|
|