• ベストアンサー

VBAでワークシートの図形をすべて選択したい!

VBAのヘルプでは Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll Set sr = Selection.ShapeRange と書いてありましたが、メモリ不足で処理できません。 何か良い方法ないでしょうか? 最終的にワークシート上の図形をすべて削除したいのです。VBAではどうするのか教えてください! EXCEL2000です。

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

  • ベストアンサー
  • eipu
  • ベストアンサー率39% (25/64)
回答No.1

下記の様な感じでどうでしょう? ただし、下記では、図形に限らず sheet上のコントロールまで削除されちゃいます。 図形のみに絞りたい場合はnameを取得して if文で判定してやれば良いかと。 Sub ObjectDelete() Dim lObjectCt As Long Dim lOIndex As Long lObjectCt = Worksheets("Sheet1").Shapes.Count For lOIndex = lObjectCt To 1 Step -1 Worksheets("Sheet1").Shapes.Item(lOIndex).Delete Next End Sub

terakura
質問者

お礼

できました!詳しい説明ありがとうございました! 図形の名前をしてせずにできる方法を探していたので、この方法でバッチリできました。ありがとうございました!

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sub test01() Worksheets("sheet1").DrawingObjects.Select 'Selection.Delete End Sub Worksheets("sheet1").DrawingObjects.Select でオートシェイプやコントロール全てが小さい□(四角)が2-8個でる、デザインモード状態になりましたが。 上記は'を取り除くと、すべて図形を抹消のコードになります。 ただ私のテストでの図形の種類・数のバラエティが少なかったので、terakuraさんの方でやって見てください。

terakura
質問者

お礼

先程補足しましたが、できました!大変申し訳ありません。ステップインで進めていくと、メッセージが出るようです。通常に実行したら何も問題なく実行できました!ずっと悩んでいたのに、たった2行でできるなんて・・・! 本当にありがとうございました!

terakura
質問者

補足

回答ありがとうございます。 ’を取り除いてやってみました。見事削除したい図形はすべて選択され、削除できました。ただ、その後に、中断モードでは実行できないというメッセージが出てきてしまいます。 このメッセージが出てこないようにするには・・・?と悩んでいます。大変申し訳ありませんが、もし分かれば教えて下さい。

関連するQ&A