dポイントプレゼントキャンペーン実施中!

Excel2013です。
下記コードのように、シートを何枚か選択して、セルを削除するのですが、セルに打ってある、('最初の数式以外を削除)するコードでは1ページ目しか削除されません。その下に書いてある('セルクリア)のコードだときれいに消えるのですが、数式を追加した時見直さないといけないのと、指定まちがいで数式まで消してしまう可能性が高くなります。
グループ化した状態でも選択しているシートの数式以外を削除する方法がありますか?

Sub データ消去()
'Sheets(Array("Sheet1", "Sheet2", "Sheet3)).Select

' 数式以外は削除(グループ化した時1ページしか削除できない?)
Range("C8:Z85,AC8:AF85,Q1:X3").SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues).

'セルクリア
'Range("C8:E85,G8:I85,K8:M85,O8:Q85,S8:U85,W8:Y85,AC8:AE85,Q1:X3").Select
'Selection.ClearContents
End Sub

A 回答 (1件)

折角マクロを使ってるのですから、出来ることでさくっと片づけてしまいます。



例:
dim w as worksheet
on error resume next
for each w in worksheets(array("Sheet1", "Sheet2", "Sheet3"))
w.Range("C8:Z85,AC8:AF85,Q1:X3").specialcells(xlcelltypeconstants).clearcontents
next





>グループ化した状態でも選択しているシートの数式以外を削除する方法

もしかすると「グループ化」してることに、いったいぜんたいどれほどのコダワリがあるのかによっては、もうちょっと違う手もあるかもしれません。が、上述のように「対象のシート」をふつーに操作していけば、大概の事は素直に片付きます。
    • good
    • 0
この回答へのお礼

できました。もう少し勉強してみます。ありがとうございました。

お礼日時:2014/09/27 21:00

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