[[20100807114935]] 『2000個の図形を一括削除』(もじもじ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『2000個の図形を一括削除』(もじもじ)
 EXCEL2002を使っています。
 図形を一括削除するマクロを作っていますが、図形が多すぎると「エラーが発生し為、 
ファイルを終了します。」見たいなのでてきて、ファイルが強制的に閉じてしまいます。
 何処が悪いのか、ファイルが閉じてしまう為、解りません。
 少量の図形を削除する時はまったく問題はありませんが、
 削除する図形の個数の制限があるのでしょうか?
 (図形は、オートシェイプで作っています。グループ化した物もたくさんあります。)
 以上、宜しくお願いします。


 (もじもじ)さんこんにちは。
 マクロを使わずにやってもらったらどうでしょうか。 
 どれかひとつ図形を選択して「Shift」+「Ctrl」+「Space」を押せばすべてのオブジェクトが
 選択されます。その時に「Delete」を押せば削除されると思いますが。
 一度やってみてください。
 もしできなかったらごめんなさい。
  (YAMA)

 >図形を一括削除するマクロを作っていますが、
 コードを見せてください。

 ichinose


>YAMA様 
 有難う御座います。
エクセルに詳しくない方にデータ(数字のみ)を打ち込んでもらい、
 それに合わせてselectcaseにて図をセルごとコピーする事で貼付けする作業
をマクロにて出来るようにしました。
後は、図を消す煩わしがさあり、少し改良しようと試みています。

>ichinose様

 >コードを見せてください。
Sub 図の削除()
Dim zu As Shape

    For Each zu In ActiveSheet.Shapes

    If zu.Type = msoGroup Or zu.Type = msoAutoShape Then zu.Delete

    Next zu

End Sub

 上記、おかしいのでしょうか?msogroupが引っかかっているのでしょうか?
 何卒、ご教授願います。(もじもじ)


こんにちは

全部消してはダメですか?

Sub test()

    ActiveSheet.Shapes.SelectAll
    Selection.Delete

End Sub

(ウッシ)


 本当は、削除は、Shapesではなく、
 DrawingObjectsで回す方が安全ですよ。

[[20100528140459]]

 ↑ 理由は、ここに投稿していました。

 今回の問題と直接の関係は ないかもしれませんが・・・。

 Sub 図の削除()
    Dim zu As Shape
    For Each zu In ActiveSheet.Shapes
       If zu.Type = msoGroup Or zu.Type = msoAutoShape Then zu.Delete
       doevents
    Next zu
 End Sub 

 困ったときの Doevents とりあえず試してみてください。

 ichinose

 


ウッシ様
 有難う御座います。
 全部削除でもいいからと思いやってみましたが、エラーが表示され、強制終了となりました。
 せっかく教えていて頂いたのに、有難う御座います。

 ichinose 様
 DrawingObjectsの記述有難う御座います。
 こちらで試してみたところ、きれいに消えてエラーが出ませんでした。
 DrawingObjectsはヘルプにも載っていないのでびっくりしました。\(◎o◎)/!
 DrawingObjectsをどのように使えば良いか解らないので、ichinose様がVBAの記述をしてくれて
 助かりました。
 これで、何とか出来そうです。
 本当に有難う御座います。(もじもじ)

ichinose様
 DoeventsはDrawingObjectsの仲間かと思っていましたら、違っていたみたいですね。
 でも、このDoeventsのおかげで、無事出来ました。
 VBAは素人なので良く解っていないも部分あり、トンチンカンなことを言ってすみません。
 どうも有難う御座いました。(もじもじ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.