セルの追加(挿入)と削除についてご説明します。
セルを追加(挿入)と削除する場合、移動方向の指定が可能です。
複数のセルや、離れたセルの挿入、削除も併せてご説明します。
セルや列のその他操作は次のページをご覧ください。
セルの挿入方法
記述方法
セルの挿入は「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