Excel VBA セルの追加(挿入)、削除

ExcelVBA-基礎編

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

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

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

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

セルの挿入方法

記述方法

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

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

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

Range(“A1”).Insert」や「Cells(1, 1).Insert」と記述します。

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

引数を省略すると、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

複数セルの挿入

連続したセルの挿入

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

Range(“A2:A4”).Insert」や「Range(Cells(2, 1), Cells(4, 1)).Insert」と記述します。

もし可変で対応させるには記述は長くなりますがCellsがおすすめです。

サンプルコード

連続した範囲のセルへの挿入サンプルコードです。

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の場合はそれぞれのセルを「,」で区切って指定します。

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

サンプルコード

離れたセルを複数選択してセルを挿入するサンプルコードです。

Range

Sub Sample7()

Range("A2,A4,A6").Insert '省略(Sample1の場合は下に挿入)
Range("B2,B4,B6").Insert Shift:=xlShiftToRight '右方向に挿入
Range("C2,C4,C6").Insert Shift:=xlShiftDown '下方向に挿入

End Sub

Cells

Sub Sample8()

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

複数セルの削除

セルの削除方法

記述方法

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

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

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

Range(“A1”).Delete」や「Cells(1, 1).Delete」と記述します。

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

引数を省略すると、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

連続したセルの削除

連続したセルの削除方法は、単純に範囲指定してDeleteです。

Range(“A2:A4”).Delete」や「Range(Cells(2, 1), Cells(4, 1)).Delete」と記述します。

サンプルコード

連続した範囲のセルへの挿入サンプルコードです。

Range

Sub Sample9()

Range("A2:A4").Delete '省略(Sample1の場合は上に削除)
Range("B2:B4").Delete Shift:=xlShiftToLeft '左方向に削除
Range("C2:C4").Delete Shift:=xlShiftUp '上方向に削除

End Sub

Cells

Sub Sample10()

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 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
タイトルとURLをコピーしました