サイトについて      連絡先   検索

VBA セルを削除する

はじめに

Excel VBA のセルを削除する方法を紹介します。

Range.Delete メソッドか Cells.Delete メソッドでセルを削除できます。

セルを削除する

Range の引数にセル名を指定すると、そのセルを削除できます。

セル「A1」を削除するには Range("A1").Delete のように指定します。

Range("A1").Delete
1

Cells の引数にセルの行と列の番号を指定すると、そのセルを削除できます。

行「2」、列「A」を削除するには Cells(2, 1).Delete のように指定します。

Cells(1, 1).Delete ' A1
Cells(2, 1).Delete ' A2
Cells(1, 2).Delete ' B1
Cells(2, 2).Delete ' B2

削除後にセルをどの方向へ詰めるかを引数で指定できます。

Call Range("A1").Delete(xlShiftToLeft) ' 左へ詰める
2

引数には次のものがあります。

定数名 説明
xlShiftToLeft-4159左方向へシフト
xlShiftUp-4162上方向へシフト

セルの範囲を削除する

セルの範囲「A1」~「B2」を削除するには Range("A1:B2").Delete または Range("A1", "B2").Delete のように指定します。

Range("A1:B2").Delete
Range("A1", "B2").Delete
3

指定したシートのセルを削除する

Range.Delete とコードに書くと、アクティブなシートのセルを削除します。これは ActiveSheet.Range.Delete の ActiveSheet が省略されています。

' どちらも同じコード
Range("A1").Delete
ActiveSheet.Range("A1").Delete

シートを指定するには Sheets の引数にシート名またはインデックスを指定します。

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

' Sheet1 のセル「A1」を削除
Sheets("Sheet1").Range("A1").Delete
Sheets(1).Range("A1").Delete

' Sheet2 のセル「A1」を削除
Sheets("Sheet2").Range("A1").Delete
Sheets(2).Range("A1").Delete

関連ページ