プロが教えるわが家の防犯対策術!

エクセル2003のマクロについての質問になります。
"B2:D2,B3:F10"を指定範囲として,その中に存在する画像・オートシェイプ及び,
同範囲内のセルに入力されている値を一度に削除するマクロを教えてください。

画像・オートシェイプは指定範囲に一部でも掛かっていれば削除対象にしたいと思っています。
なお,指定範囲には罫線,結合セル,入力規則(プルダウン),マクロ登録オートシェイプ,数式が存在しますが,それらは残したままにしたいと思っています。
(マクロ登録オートシェイプと数式については,残したままにすることは困難に感じるので,無理そうならそれらは除外してお願いします。)

マクロについて初心者ですので,コピーペーストでそのまま使用できる状態で回答頂けると助かりますm(__)m

よろしくお願いします。

A 回答 (1件)

サンプル:


sub macro1()
dim d
for each d in activesheet.drawingobjects
if not application.intersect(range("B2:D2,B3:F10"), range(d.topleftcell, d.bottomrightcell)) is nothing and d.onaction = "" then
d.delete
end if
next
range("B2:D2,B3:F10").specialcells(xlcelltypeconstants).clearcontents
end sub




#詰め込みすぎというか,質問としてあれもこれもと欲張り過ぎ。
ご質問の解決すべき要素を整理して,ひとつずつ検討を深めていくと,もっとよく検討を要する箇所がある事が判ってくると思います。
    • good
    • 0
この回答へのお礼

要望した複数の条件を全て満たした,まさに必要としていた回答そのものでした。
頂いた回答を加工して削除するものがないときのエラー回避とシート保護・解除を加えて使用させて頂きました。
ありがとうございました。

お礼日時:2010/04/14 21:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!