[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートシェイプ削除』(YAMADA)
オートシェイプで直線をH:J列に複数箇所引いていますが、 A、B列にもオートシェイプで直線を引いています。 H:J列のオートシェイプの直線だけを削除するにはどうすればいいですか? 教えてください。
下記は、過去ログから
Sub 自由直線()
With Range("H1:J2")
x1 = .Left
x2 = .Top
x3 = .Width
x4 = .Height
End With
ActiveSheet.Shapes.AddLine(x1, x2, x1 + x3, x2 + x4).Select
End Sub
十分な検証はしていませんが、こんな感じでどうでしょうか。(ROUGE)
'----
Sub test()
Dim sp As Shape
For Each sp In ActiveSheet.Shapes
If sp.Type = 9 Then
sp.Select
With Selection.ShapeRange.Line
If (.BeginArrowheadStyle = 1) * (.EndArrowheadStyle = 1) Then
If Intersect(Range(sp.TopLeftCell, sp.BottomRightCell), _
Range("A:G,K:IV")) Is Nothing Then sp.Delete
End If
End With
End If
Next
End Sub
『自由直線()』を実行して『test()』実行しても消えなかったので
範囲を広げたら消えました。
Range("A:G,K:IV") → Range("A:F,L:IV"))
有難う御座いました。
(YAMADA)
Sub test()
Dim rng As Range
Set rng = Range("h:j")
Dim sp As Object
For Each sp In ActiveSheet.Lines
With sp
If .ArrowHeadStyle = -4142 Then
If .Left >= rng.Left And _
.Left + .Width <= rng.Left + rng.Width Then
sp.Delete
End If
End If
End With
Next
End Sub
どなたかわかりませんが、有難う御座いました。 上記でokになりました。
(YAMADA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.