• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:図形のクリアで実行時の1004エラーになる)

図形のクリアで実行時の1004エラーになる

このQ&Aのポイント
  • 指定範囲(I9:CW40)から図形(円・四角形)のクリアをするとエラーになってしまいます。
  • 終了をすればクリアはできるのですが。
  • 御教授願えませんでしようか?(尚四角形はセルの枠線上に貼り付けるようにしてあります。)

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

当然の結果だと思います ForEachは Inに指定した コレクションが普遍であるとして動作します 削除を行いたいのであれば ShapesのCountプロパティを使ってループを組みます dim n as integer, sp as Variant for n = ActiveSheet.Shapes.Count to 1 step -1   set sp = ActiveSheet.Shapes(n)   if Not Intersect(Range(sp.TopLeftCell, sp.BottomRightCell),myRng) Is Nothing then     sp.Delete   end if next といった具合に Shapesコレクションの末尾から削除するようにしましょう

Rord
質問者

お礼

  おしゃるとおりだと思います。無事に解決できました。 やはり勉強不足は否めませんし冷静に考えればそうなんですけどご指摘のように自分で考えて修正できるように少しずつでもスキルアップしていきたいと思います。 本当にありがとうございます。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

当方xl2010ですが、特にエラーも無く実行できました。 一般にFor Eachを用いて削除すると、内部の管理番号?の振り直しのためか、消し損じが出ることがありますが、今回若干の試験では、消し損じも確認できませんでした。 エラー発生時のShapeを確認し、何か特異点が無いか確認してはいかがでしょうか。

関連するQ&A