- ベストアンサー
ExcelのVBAでシート内にある、特定の罫線だけを削除したい。
ExcelのVBAでシート内にある、特定の罫線だけを削除したい。 2003を使用しています。ここのサイトで罫線に関する質問をし解決に至りましたが、もうひとつお願いしたいことがあるので、よろしくお願いします。 ある範囲(例としてA1セルからM50セルの範囲)内に色々な罫線や図形が表示されているのですが、 その中から特定(例として太さ5ポイントの普通の赤罫線)だけを削除するコードの記述が、色々試してみたのですが出来ませんでした。 どんな記述や展開をして書くのかもイメージがわきません。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
罫線といっても、オートシェイプの線の事ですよね? 下記の条件を満たしたオートシェイプを削除すればよいと思います。 なお.shapes(2)をDELETEすると.shapes(3)は.shapes(2)になります。 プログラムされる際は気をつけて下さい。 '種類 .Shapes(i).AutoShapeType = -2 ※消したいAutoShapeTypeは調べて下さい。 '縦横 .Shapes(i).Top = Range("N51").Top .Shapes(i).Left = Range("N51").Left ※なぜ斜め下の『N51』なのかはデバッグして確認してみてください。 '線の太さ .Shapes(i).Line.Weight >= 5 '線の色 .Shapes(i).Line.ForeColor.SchemeColor = 10
その他の回答 (1)
- mo2yakko
- ベストアンサー率54% (30/55)
No1です。 サンプルとしてはこんな感じでしょうか(^^; 消したいオートシェイプの種類とか色とかは調べて下さい。 Sub test() Dim DataSheet As Worksheet Dim i As Integer Dim bDelFlg As Boolean Set DataSheet = ThisWorkbook.Sheets(1) i = 1 Do With DataSheet bDelFlg = False If .Shapes(i).AutoShapeType = -2 Then If .Shapes(i).Top <= Range("N51").Top And .Shapes(i).Left <= Range("N51").Left Then If .Shapes(i).Line.Weight >= 5 And .Shapes(i).Line.ForeColor.SchemeColor = 10 Then .Shapes(i).Delete bDelFlg = True End If End If End If If bDelFlg = False Then i = i + 1 End If If i > .Shapes.Count Then Exit Do End If End With Loop End Sub
お礼
ありがとうございました
お礼
ありがとうございました。 消すことができました。 感謝いたします。