
Excelシート内のゴミや残骸を消去する際に、クリアの種類には複数あり迷うところもあるでしょう。
みなさん、こんにちは。セルネッツ竹本です。
今回は、「VBAでワークシートをクリアする方法」をテーマに、解説をしたいと思います。
遅いマクロの改善に
シートのクリアで固まるマクロ、軽くできます
- シートのクリアや削除で応答なしになる
- 同じクリア処理が複数のモジュールに散らばる
- 前回のデータが残ったまま集計してしまう
そのお悩み、マクロの高速化と整理で解決できます。Excel専門のシステム開発会社『セルネッツ』なら、Selectを使わない記述への書き換えやクリア処理の共通化に対応します。前回データの消し残しを防ぐ処理の流れも整えます。
\Excel専門特化 × 低価格 × スピード対応/
全国対応・お見積もり無料
◆ワークシートのクリア方法が複数ある

上記のように、厳密には4種類あるのですが、基本は、スッキリ消去したいので、一番上のすべてクリアを使うことをおすすめします。
また、シートClearの記述は、「どのシート?」それだけ分かれば、目的のシートをクリアできるので、複数のModuleに同じシートクリアの記述を分散させないよう注意し、一箇所にまとめると不具合リスク、改修リスクも低減できます。
以下のような記述です。
Sub M_シートClear(S_St区分 As String)
'指定されたシート番号をクリア
Select Case S_St区分
Case "O_11": O_11.Cells.Clear
Case "O_12": O_2.Cells.Clear
Case Else
End Select
'---------------------------------
' 以下は、例です。
'---------------------------------
'[DEL]キー押下と同じ
Cells.Clear 'すべてクリア
Cells.ClearFormats '書式のクリア
Cells.ClearContents '数値と値のクリア
Cells.ClearHyperlinks 'ハイパーリンクのクリア
End Sub
【Point】
「初心者あるある」ですが、セル全てを選択して「削除(D)」を実行すると以下のマクロが記録されます。
マクロ記録をすると、Cells.Seletetともう一行が1セットになりますが、記述は、1行にまとめましょう。
(いったんSelect選択する物理的な操作を省略できるので高速化に繋がります!)
Cells.Select
Selection.Delete Shift:=xlUp
が、100万行近いデータを物理的に削除しにいくため、速度がとても遅いです。
ですので、「応答なし」になる可能性を回避するため、使わないほうが良いでしょう。
健全な状態データは、健全なシート上にないとリスクが除去されません。
今回のテーマは、「VBAでワークシートをクリアする方法」について、解説を行いました。
本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。
Excel業務改善事例ショート動画
文章だけでは伝わりにくい改善事例を、ショート動画でご覧いただけます。
◆よくある質問 ◆Excel業務改善の実例 ◆VBA・マクロ活用事例
相見積もり歓迎
毎回の集計を任せられるツールは12万円〜
- 集計レポートは12万円〜(税別・基本料金込み)
- 既存マクロの改修は基本料金+時間単価で
- Excelに向かない処理量なら正直にお伝えします
クリアから集計まで自動で回すツールは、集計レポート12万円〜(税別・基本料金込み)が参考価格です。既存マクロの改修は基本料金50,000円+時間単価でお見積もりします。相見積もりも歓迎です。Excelに向かない処理量なら、正直にお伝えします。
\Excel専門特化 × 低価格 × スピード対応/
全国対応・お見積もり無料
