• ベストアンサー

エクセルで図形の削除

シート内に作図されている線で、 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 どこがおかしいでしょうか? ご指摘お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

chamire
質問者

お礼

ありがとうございます。

その他の回答 (2)

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

If文の条件式は「値 記号 値」の形式になります。 つまり 100 < .Height < 200 という書き方は正しくありません。 If 100 < .Height And .Height < 200 And 100 < .Width And .Width < 200 Then と書き直してみてください。

chamire
質問者

お礼

ありがとうございます。

noname#187541
noname#187541
回答No.1

こんにちは。 100 < .Height < 200  このような書き方は出来ません。 100 < .Height And .Height < 200  このようにします。 100 < .Width < 200 も同様です。

chamire
質問者

お礼

ありがとうございます。

関連するQ&A

専門家に質問してみよう