[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2000個の図形を一括削除』(もじもじ)
EXCEL2002を使っています。 図形を一括削除するマクロを作っていますが、図形が多すぎると「エラーが発生し為、 ファイルを終了します。」見たいなのでてきて、ファイルが強制的に閉じてしまいます。 何処が悪いのか、ファイルが閉じてしまう為、解りません。 少量の図形を削除する時はまったく問題はありませんが、 削除する図形の個数の制限があるのでしょうか? (図形は、オートシェイプで作っています。グループ化した物もたくさんあります。) 以上、宜しくお願いします。
(もじもじ)さんこんにちは。 マクロを使わずにやってもらったらどうでしょうか。 どれかひとつ図形を選択して「Shift」+「Ctrl」+「Space」を押せばすべてのオブジェクトが 選択されます。その時に「Delete」を押せば削除されると思いますが。 一度やってみてください。 もしできなかったらごめんなさい。 (YAMA)
>図形を一括削除するマクロを作っていますが、 コードを見せてください。
ichinose
有難う御座います。 エクセルに詳しくない方にデータ(数字のみ)を打ち込んでもらい、 それに合わせて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で回す方が安全ですよ。
↑ 理由は、ここに投稿していました。
今回の問題と直接の関係は ないかもしれませんが・・・。
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の記述をしてくれて 助かりました。 これで、何とか出来そうです。 本当に有難う御座います。(もじもじ)
DoeventsはDrawingObjectsの仲間かと思っていましたら、違っていたみたいですね。 でも、このDoeventsのおかげで、無事出来ました。 VBAは素人なので良く解っていないも部分あり、トンチンカンなことを言ってすみません。 どうも有難う御座いました。(もじもじ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.