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

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) ' 左へ詰める

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

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

セルの範囲を削除する

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


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

引数を指定しないとき削除後にどちらの方向に詰めるかは、範囲が縦長のときは左方向へ、それ以外のときは上方向へ詰めます。

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

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

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

' 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 = "アクティブ"
  • 目次
    • セルを削除する
    • セルの範囲を削除する
    • 指定したシートのセルを削除する