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