| 
    
     |  | ▼マリアン さん: >今度は、J27の数値がdeleteされたら、
 >自動的に、引かれた線を消す・・
 という事だけ見れば、書きコードに判定を追加するだけです。
 
 >>If Target.Address(0, 0) = "J27" Then
 >>  If Not IsEmpty(Target.Value) Then
 >>   ここに線を書くコード
 >>  End If
 >>End If
 >>End Sub
 
 >ということは可能でしょうか。
 >線が引かれている範囲は、A51:AS54の範囲です。
 これは、どうやって線を作っているのかで変わってきます。
 線に特定の名前をつけているのなら
 下記コードの様にすれば良いです。
 
 >ただ、何個も同じ所に重ねて作るようになるから、最初に消した方が良いです。
 
 >On Error Resume Next
 >ActiveSheet.Shapes("線1").Delete
 >ActiveSheet.Shapes("線2").Delete
 
 そうでないのなら面倒な事をしないとダメです。
 面倒なので活用した事がないですが。
 全ての図形オブジェクトを1個1個しらべ
 たった2つしかない、TopLeftCell、BottomRightCellプロパティで場所判定するような感じになります。
 おまけに、微妙な位置にある場合の判定が結構ザルみたいです。
 
 Sub mmmmmm()
 Dim Sap As Shape
 Set Sap = ActiveSheet.Shapes(Selection.name)
 Sap.TopLeftCell.Select
 MsgBox "選択した図形の左上に当る位置のセルを選択しました。"
 Sap.BottomRightCell.Select
 MsgBox "選択した図形の右下に当る位置のセルを選択しました。"
 End Sub
 
 |  |