[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『全シートを一気にClear』(Clear)
Sheets("Sheet1").Cells.Clear Sheets("Sheet2").Cells.Clear とシートがたくさんある場合、全シートを一気にClearできるコードを教えてください。
Sub sample() Dim ws As Worksheet For Each ws In Worksheets ws.Cells.Clear Next End Sub (usamiyu)
ちんたら書いているうちにusamiyuさんからレス付いちゃいましたが そのままアップします。
セル幅や行高、シェイプなどは残してセル内容だけクリア、でしょうか? また、グラフシートやマクロシートは対象外でしょうか?
ワークシート(シート、グラフシート、マクロシート)上のものすべて(シェイプや 行高・列幅などの設定も含めて)クリアしたいのなら ブックを一旦削除して同じ名前のブックを生成したほうが早いような気がします。
一括、ではありませんが、すべての「ワーク」シートをループしクリアする方法です。
Dim wb As Workbook Dim ws As Worksheet Set wb = ThisWorkbook For Each ws In wb.Worksheets ws.Cells.Clear Next ws Set wb = Nothing
ちなみに、手動で行うなら、すべてのシートを選択した状態で
↓ここをクリックして全セルを選択状態にする □A B C 1 2 3
でクリア→すべて
で全シートの全セルの内容をクリアできます。
すべてのシートを選択するコードは
Worksheets.Select
になります。 ただ、複数選択したシートに対して処理を一括で行うには シートを配列に格納してやらないといけないようなのですが、 シートを配列に格納するのはループになると思います。 ループを使わないで「一括で」 というのは出来そうな気が しますが方法はわかりません。
(カリーニン)
年末や年度末になると、シートの書式などは残してセルの内容だけを 一括でクリアしたい、という質問を良く見かけます。
こういう場合は、考え方はいろいろありますが、一度テンプレートと なるブックを作成しておいてそれをコピーして使う、という方法も あります。
参考まで。 (カリーニン)
カリーニンさんのレスを参考にして色々実験してみましたが、 こんなのでよさそうな気がしますけど、どんなもんでしょう?
Sub test() ActiveWorkbook.Worksheets.Select Cells.Select Selection.Clear Cells(1, 1).Select Worksheets(1).Select End Sub
下手に走らすと、一発で大事なデータが無くなっちゃいます。 危ないので、早速ごみ箱行にしましたけど。
(半平太) 2012/11/27 23:21
>ActiveWorkbook.Worksheets.Select ...非表示のシートがあるとアウト。 (seiya)
> ...非表示のシートがあるとアウト。
なるほどです。そんな問題があるとは気が付きませんでした。
(半平太) 2012/11/27 23:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.