
Excel VBAで、指定したセル以下の2行目以降の特定範囲内のデータを一括でクリアする。注意点やサンプルコードを紹介します。
「VBAスキルを証明できれば、社内評価アップにつながるかもしれません
👉 VBAを学んで社内評価を上げる方法はこちら
目次
Excel VBA 2行目以降をクリア
基本的なクリア方法から応用テクニック、エラーハンドリングまで詳しく解説します。
2行目以降のデータをクリアする必要性
・シート上の特定の範囲に保存されているデータをリセットしたい。
・一部のデータを保持しつつ、特定の行から下のデータをクリアしたい。
・テーブル形式のデータがあり、2行目以降を初期化したい。
注意すべきポイント
・シートや範囲の指定を誤ると、予期せぬセルのクリアが発生する可能性があるため、注意が必要です。
・マクロを実行する前に、データのバックアップを取得することをおすすめします。
「VBAスキルを証明できれば、社内評価アップにつながるかもしれません
👉 VBAを学んで社内評価を上げる方法はこちら
Excel VBA 基本的なクリア方法とサンプルコード
Range.ClearContents メソッドの活用
特定の範囲内のデータのみをクリアする場合、 ClearContents メソッドを使用します。
Option Explicit
Sub ClearDataContents()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("A2:D100").ClearContents ' A2:D100のデータのみを削除
End Sub
セルの内容のみを削除し、書式やコメントはそのまま保持します。
このコード、「なんとなくコピペ」で済ませていませんか?
構文は知っていても、
「Range.Clearの扱いがよく分からない」──
そんなモヤモヤを感じたことがある方へ。
“今の自分のVBAスキル”を、点数で見える形にしてみませんか? ※この教材は「試験対策」も「実力診断」も、どちらにも対応しています。
Range.Clear メソッドとの違い
Clear メソッドを使用すると、セルの内容だけでなく、書式やコメントも削除されます。
Option Explicit
Sub ClearDataAll()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("A2:D100").Clear ' A2:D100のデータ、書式、コメントをすべて削除
End Sub
どちらの方法を使うかは、目的に応じて選択してください。
Excel VBA 応用テクニックのサンプルコード
特定の条件でのデータクリア
「特定の列に値がある行だけを削除したい」という場合は、ループ処理を活用します。
Option Explicit
Sub ClearConditionalData()
Dim ws As Worksheet
Dim lastRow As Long, i As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row ' 最終行を取得
For i = lastRow To 2 Step -1 ' 2行目から最終行までループ
If ws.Cells(i, "B").Value = "削除" Then
ws.Rows(i).ClearContents ' B列が「削除」の行のデータを消去
End If
Next i
End Sub
マクロができる人が少ない職場
数年後にはあなたより効率的な後輩にポジションを奪われるかもしれません。
👉 詳細はこちら
動的な範囲指定の方法
最終行を自動で判別し、適切な範囲をクリアする方法です。
Option Explicit
Sub ClearDynamicRange()
Dim ws As Worksheet
Dim lastRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row ' A列の最終行を取得
If lastRow > 1 Then
ws.Range("A2:D" & lastRow).ClearContents ' 2行目から最終行までをクリア
End If
End Sub
Excel VBA エラーハンドリングとデータ保護のサンプルコード
バックアップ
データクリアの前に、バックアップを取ることで誤操作によるデータ消失を防げます。
Option Explicit
Sub BackupAndClear()
Dim ws As Worksheet
Dim backupWs As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Set backupWs = ThisWorkbook.Sheets.Add ' 新しいシートを作成
backupWs.Name = "Backup_" & Format(Now, "yyyymmdd_HHMM")
ws.UsedRange.Copy backupWs.Range("A1") ' シート全体をバックアップ
ws.Range("A2:D100").ClearContents ' データをクリア
End Sub
エラーを防ぐためのコード
エラーハンドリングを適用し、クリア処理中の問題を回避します。
Option Explicit
Sub SafeClear()
On Error Resume Next ' エラー発生時に処理を継続
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
If Not ws Is Nothing Then
ws.Range("A2:D100").ClearContents
Else
MsgBox "シートが存在しません", vbExclamation
End If
On Error GoTo 0 ' エラーハンドリングを解除
End Sub
Excel VBAを使えば、2行目以降のデータを効率的にクリアできます。
・基本的な方法
ClearContents と Clear の違いを理解する
・応用テクニック
条件付きクリアや動的範囲指定を活用する
・エラーハンドリング
事前バックアップやエラーチェックを実装する
サンプルコードは、Sheet1のA列からE列の2行目以降をクリアします。
「できてるはず」──そう思っていても、
「このやり方、本当に正しいのかな…?」と感じたことはありませんか?
VBAを実務で使いこなしているあなたへ。 “今の自分のVBAスキル”を、点数で見える形にしてみませんか? ※この教材は「試験対策」も「実力診断」も、どちらにも対応しています。