Excel VBA セルの挿入、削除

ExcelVBA-基礎編

今回はセルの追加(挿入)と削除についてご説明します。

セルを挿入と削除する場合、移動方向の指定が可能です。

複数のセル挿入や削除も併せてご説明します。

セルや列のその他操作は次のページをご覧ください。

1.セルの挿入方法

セルの挿入は「Insert」 メソッドを使用します。

RangeでもCellsでも使用できます。

Rangeはセル名で、Cellsは行列番号で指定します。

引数に移動方向を指定する事で、右もしくは下へ指定できます。

引数を省略すると、Excelが自動的に判定して移動方向が決まります。

定数移動方向
xlShiftToRight右方向
xlShiftDown下方向
Rangeの場合
Sub Sample1()

Range("A2").Insert '省略(Sample1の場合は下に挿入)

Range("B2").Insert Shift:=xlShiftToRight '右方向に挿入

Range("C2").Insert Shift:=xlShiftDown '下方向に挿入

End Sub
Cellsの場合
Sub Sample2()

Cells(2, 1).Insert '省略(Sample1の場合は下に挿入)

Cells(2, 2).Insert Shift:=xlShiftToRight '右方向に挿入

Cells(2, 3).Insert Shift:=xlShiftDown '下方向に挿入

End Sub

2.セルの削除方法

セルの挿入は「Delete」 メソッドを使用します。

RangeでもCellsでも使用できます。

Rangeはセル名で、Cellsは行列番号で指定します。

引数に移動方向を指定する事で、左もしくは上へ指定できます。

引数を省略すると、Excelが自動的に判定して移動方向が決まります。

定数移動方向
xlShiftToLeft左方向
xlShiftUp上方向
Rangeの場合
Sub Sample3()

Range("A2").Delete '省略(Sample1の場合は上に削除)

Range("B2").Delete Shift:=xlShiftToLeft '左方向に削除

Range("C2").Delete Shift:=xlShiftUp '上方向に削除

End Sub
Cellsの場合
Sub Sample4()

Cells(2, 1).Delete '省略(Sample1の場合は上に削除)

Cells(2, 2).Delete Shift:=xlShiftToLeft '左方向に削除

Cells(2, 3).Delete Shift:=xlShiftUp '上方向に削除

End Sub

3.複数セルの挿入/削除

連続したセルの挿入/削除

連続したセルの挿入方法は、単純に範囲指定して、InsertもしくはDeleteです。

挿入

Rangeのコード

Sub Sample5()

Range("A2:A4").Insert '省略(Sample1の場合は下に挿入)

Range("B2:B4").Insert Shift:=xlShiftToRight '右方向に挿入

Range("C2:C4").Insert Shift:=xlShiftDown '下方向に挿入

End Sub

Cellsのコード

Sub Sample6()

Range(Cells(2, 1), Cells(4, 1)).Insert '省略(Sample1の場合は下に挿入)

Range(Cells(2, 2), Cells(4, 2)).Insert Shift:=xlShiftToRight '右方向に挿入

Range(Cells(2, 3), Cells(4, 3)).Insert Shift:=xlShiftDown '下方向に挿入

End Sub
削除

Rangeのコード

Sub Sample7()

Range("A2:A4").Delete '省略(Sample1の場合は上に削除)

Range("B2:B4").Delete Shift:=xlShiftToLeft '左方向に削除

Range("C2:C4").Delete Shift:=xlShiftUp '上方向に削除

End Sub

Cellsのコード

Sub Sample8()

Range(Cells(2, 1), Cells(4, 1)).Delete '省略(Sample1の場合は上に削除)

Range(Cells(2, 2), Cells(4, 2)).Delete Shift:=xlShiftToLeft '左方向に削除

Range(Cells(2, 3), Cells(4, 3)).Delete Shift:=xlShiftUp '上方向に削除

End Sub

離れたセルの挿入/削除

離れたセルは、指定方法が少し違います。

Rangeの場合はそれぞれのセルを「,」で区切って指定します。

Cellsは「Union」を使用して、選択セルを指定します。

挿入

Rangeのコード

Sub Sample9()

Range("A2,A4,A6").Insert '省略(Sample1の場合は下に挿入)

Range("B2,B4,B6").Insert Shift:=xlShiftToRight '右方向に挿入

Range("C2,C4,C6").Insert Shift:=xlShiftDown '下方向に挿入

End Sub

Cellsのコード

Sub Sample10()

Union(Cells(2, 1), Cells(4, 1), Cells(6, 1)).Insert '省略(Sample1の場合は下に挿入)

Union(Cells(2, 2), Cells(4, 2), Cells(6, 2)).Insert Shift:=xlShiftToRight '右方向に挿入

Union(Cells(2, 3), Cells(4, 3), Cells(6, 3)).Insert Shift:=xlShiftDown '下方向に挿入

End Sub
削除

Rangeのコード

Sub Sample11()

Range("A2,A4,A6").Delete '省略(Sample1の場合は上に削除)

Range("B2,B4,B6").Delete Shift:=xlShiftToLeft '左方向に削除

Range("C2,C4,C6").Delete Shift:=xlShiftUp '上方向に削除

End Sub

Cellsのコード

Sub Sample12()

Union(Cells(2, 1), Cells(4, 1), Cells(6, 1)).Delete '省略(Sample1の場合は上に削除)

Union(Cells(2, 2), Cells(4, 2), Cells(6, 2)).Delete Shift:=xlShiftToLeft '左方向に削除

Union(Cells(2, 3), Cells(4, 3), Cells(6, 3)).Delete Shift:=xlShiftUp '上方向に削除

End Sub

「Union」で範囲を指定する場合は「Union(Range(Cells(2, 3), Cells(4, 3)), Range(Cells(2, 3), Cells(4, 3)))」の様に記載します。

タイトルとURLをコピーしました