重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

シート内に作図されている線で、
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

どこがおかしいでしょうか?
ご指摘お願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/05/25 16:59

If文の条件式は「値 記号 値」の形式になります。


つまり 100 < .Height < 200 という書き方は正しくありません。

If 100 < .Height And .Height < 200 And 100 < .Width And .Width < 200 Then

と書き直してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/05/25 16:58

こんにちは。



100 < .Height < 200  このような書き方は出来ません。

100 < .Height And .Height < 200  このようにします。

100 < .Width < 200 も同様です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/05/25 16:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!