- ベストアンサー
エクセルで図形の削除
シート内に作図されている線で、 100 < .Height < 200 And 100 < .Width < 200 上記の条件を満たすものを削除したいのですが、以下のマクロですと、全ての線が削除されてしまいます。 シート内に様々な長さ・向きの線を作図して試したのですが。 For Each x In ActiveSheet.DrawingObjects With x If 100 < .Height < 200 And 100 < .Width < 200 Then .Delete End If End With Next どこがおかしいでしょうか? ご指摘お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> シート内に様々な長さ・向きの線 線に限定なら以下のようにしたらどうでしょう?今のままでは線以外のオートシェープ等のオブジェクトも削除されてしまいます。 あと、不等号の配置を換えました。 Sub test() For Each x In ActiveSheet.Lines With x If 100 < .Height And .Height < 200 And 100 < .Width And .Width < 200 Then .Delete End If End With Next End Sub
その他の回答 (2)
- ttyp03
- ベストアンサー率28% (277/960)
If文の条件式は「値 記号 値」の形式になります。 つまり 100 < .Height < 200 という書き方は正しくありません。 If 100 < .Height And .Height < 200 And 100 < .Width And .Width < 200 Then と書き直してみてください。
お礼
ありがとうございます。
こんにちは。 100 < .Height < 200 このような書き方は出来ません。 100 < .Height And .Height < 200 このようにします。 100 < .Width < 200 も同様です。
お礼
ありがとうございます。
お礼
ありがとうございます。