【VBA入門】VBAで使用済ワークシートをクリアするには、Cells.Clear


Excelシート内のゴミや残骸を消去する際に、クリアの種類には複数あり迷うところもあるでしょう。

みなさん、こんにちは。セルネッツ竹本です。

今回は、「VBAでワークシートをクリアする方法」をテーマに、解説をしたいと思います。

◆ワークシートのクリア方法が複数ある

クリアの種類

上記のように、厳密には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実務の効率化において、ご参考お役立てになれば幸いです。


全国対応!お気軽にお問い合わせください