セルのクリア(書式も)
「値も書式もまとめて消したい」「表の枠組みごと初期化したい」なら Clear。値だけ、書式だけとの違いを押さえたうえで、初心者向けの安全テンプレートと例題をまとめます。Clearは値・書式・コメントなど“ほぼ全部”を消し、セルを初期状態にします。ClearContentsは値・数式のみ、ClearFormatsは書式のみを消します。
基本:値も書式もまとめて消す(最短コード)
Sub ClearAll_Basic()
'A1:C3 の値・書式・コメント等をすべてクリア(初期状態に)
Range("A1:C3").Clear
End Sub
VB- ポイント: Clearは「値・数式・フォント・背景色・罫線・表示形式・コメント」などをまとめてクリアします。セルは未使用(初期)状態に戻ります。
使い分けの整理(値のみ/書式のみ/全部)
Sub ClearVariants()
Range("B2:D5").ClearContents '値・数式だけ消す(書式は残す)
Range("B2:D5").ClearFormats '書式だけ消す(値は残す)
Range("B2:D5").Clear '値+書式+コメント等を全部消す
End Sub
VB- ポイント:
- ClearContentsは「数式と文字列」を削除し、書式は残します。
- ClearFormatsは「背景色・罫線・フォント・表示形式・条件付き書式」などの書式だけを削除します。
- 「全部消したい」なら Clear を選びます。
書式も消したいが範囲を限定する(列・行・使用範囲)
Sub ClearColumnRowUsedRange()
Columns("E").Clear 'E列の値・書式を全部クリア
Rows("3:10").Clear '3〜10行をクリア
ActiveSheet.UsedRange.Clear '使用中セルだけを一括クリア
End Sub
VB- ポイント: Columns/Rows/UsedRange に対しても Clear を使えます。UsedRangeなら「触っている範囲だけ」初期化でき、余計な場所を壊しにくいです。
書式だけ消してから、必要な表示を再設定(安全テンプレート)
Sub ResetFormatsThenApply()
With Range("B3:F100")
.ClearFormats 'まず書式を全部消す
.NumberFormat = "#,##0" '表示形式(例:3桁区切り)
.Font.Name = "Meiryo" 'フォント
.Font.Size = 10
.Interior.ColorIndex = xlColorIndexNone '背景なし
.Borders.LineStyle = xlLineStyleNone '罫線なし
End With
End Sub
VB- ポイント: ClearFormatsは表示形式も消します。日付列などは「シリアル値(例:44909)」に見えるため、必要な表示形式を必ず再設定します。
条件付きでクリア(例:負数だけは値も書式も消す)
Sub ClearNegative_All()
Dim last As Long, r As Long
last = Cells(Rows.Count, "F").End(xlUp).Row
For r = 3 To last
If Cells(r, "F").Value < 0 Then
Cells(r, "F").Clear '該当セルを完全クリア
End If
Next
End Sub
VB- ポイント: 条件判定→Clearで「値・書式・コメント等」まとめて削除できます。値だけなら ClearContents、書式だけなら ClearFormats に切り替えます。
例題で練習
例題1:提出前に表範囲を初期化(値・書式・コメント等)
Sub Example_ClearTableAll()
Range("B2:F50").Clear
End Sub
VB例題2:値は残して“見た目だけ”リセット→再整形
Sub Example_ResetLooks()
With Range("C3:E100")
.ClearFormats
.NumberFormat = "yyyy/mm/dd" '日付列なら再設定が必要
.Font.Name = "Meiryo"
.Font.Size = 10
End With
End Sub
VB例題3:シートの使用範囲だけ完全クリア(余白は触らない)
Sub Example_ClearUsedRange()
ActiveSheet.UsedRange.Clear
End Sub
VB実務の落とし穴と対策
- 日付が数字に見える問題: 書式を消すと日付はシリアル値表示になるため、必要な表示形式(例:yyyy/mm/dd)を再設定します。
- 「全部消したい」の誤用: Clearは強力です。範囲を限定(UsedRangeや表範囲)し、必要ならバックアップを取ってから実行します。
- 値だけ消したいのに書式まで消えた: ClearContentsとClearの使い分けを徹底。書式だけ消す場合は ClearFormats を使うと安全です。
- 条件付き書式も消える: ClearFormatsは条件付き書式もクリアします。必要なら再設定のコードを併用します。
