[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートシェイプ削除』(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.