更新日:、 作成日:
VBA セルを削除する (Range.Delete)
はじめに
Excel VBA マクロでセルを削除する方法を紹介します。
Range("B1").Delete または Cells(1, 2).Delete メソッドから、セル「B1」を削除できます。
削除後に移動する方向を指定できます
セルを削除する
Range の引数にセル名を指定すると、そのセルを削除できます。
セル「A1」を削除するには Range("A1").Delete を入力します。
Range("A1").Delete
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) ' 左へシフト
Call Range("A1").Delete(xlShiftUp) ' 上へシフト
引数には次のものがあります。
定数名 | 値 | 説明 |
xlShiftToLeft | -4159 | 左方向へシフト |
xlShiftUp (既定) | -4162 | 上方向へシフト |
スポンサーリンク
セルの範囲を削除する
セルの範囲「A1」~「B2」を削除するには Range("A1:B2").Delete または Range("A1", "B2").Delete を入力します。
Range("A1:B2").Delete
Range("A1", "B2").Delete
引数を指定しないで削除したときの移動する方向は、範囲が縦長のときは左方向へ、それ以外のときは上方向へ移動します。
Delete と Clear の違い
Delete 以外に Clear メソッドからもセルをクリアできます。
Range("A1").Delete ' 削除
Range("A1").Clear ' クリア
- Delete:セルそのものを削除し、上か左に移動する。
- Clear:セルは残して、すべての値や書式をクリアする。
削除後にセルを移動するときは Delete を使用し、セルはそのまま残したいときは Clear を使用します。
別シートのセルを削除する
シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。
Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。
' Sheet1 のセル「A1」を削除
Worksheets("Sheet1").Range("A1").Delete
Worksheets(1).Range("A1").Delete
' Sheet2 のセル「A1」を削除
Worksheets("Sheet2").Range("A1").Delete
Worksheets(2).Range("A1").Delete
Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。
' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"
標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。
' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"
スポンサーリンク