• ベストアンサー

ExcelVBAのシート毎の値のクリアについて

VBAでシート別でまとめてセルのクリアする方法はあるのでしょうか。 例えば、シート1からシート30のセルB5:F10の数式と値のクリアをする場合は、For文を使ってループする以外にも方法はあるのでしょうか。 ループより速度が速くなる方法があればご教示ください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

参考に ループせずに sub macro1()  worksheets.select  range("B5:F10").clearcontents  activewindow.selectedsheets.fillacrosssheets range("B5:F10")  worksheets(1).select end sub みたいな手口もあります。

mzakom
質問者

お礼

なるほど。面白いですね。 回答ありがとうございました

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 30Sheet程度であればループで問題ないのでは? Sub Sample1() Dim k As Long For k = 1 To Worksheets.Count Worksheets(k).Range("B5:F10").ClearContents Next k End Sub くらいで・・・ VBA以外であれば すべてのSheetを「作業グループ化」して、B5~F10 を範囲指定 → Deleteキー → 作業グループ解除 これが一番早くて簡単だと思います。m(_ _)m

mzakom
質問者

お礼

確かに30シート程度ならそんなに気にすることじゃないんですが、他に適切なやり方があるのか気になりました。 回答ありがとうございましまた。

  • usami33
  • ベストアンサー率36% (808/2210)
回答No.1

全て消えてよい? Sheets("シート名").Cells.Delete 範囲指定なら Range.Delete

関連するQ&A