VBA 行や列を挿入する
In this Article
このチュートリアルでは、VBAを使ってExcelで行と列を挿入する方法を説明します。
行や列を挿入するには、Insertメソッドを使います。
単一の行または列の挿入
新しい行の挿入
1つの行を挿入するには、Rowsオブジェクトを使います。
Rows(4).Insert
また、RangeオブジェクトとEntireRowを併用することもできます。
Range("b4").EntireRow.Insert
新しい列の挿入
行の挿入と同様に、Columnsオブジェクトを使って列を挿入することができます。
Columns(4).Insert
また、RangeオブジェクトとEntireColumnを併用することもできます。
Range("b4").EntireColumn.Insert
複数の行または列の挿入
複数の行の挿入
Rows オブジェクトを使用して複数の行を挿入する場合は、行を引用符で囲んで入力する必要があります。
Rows("4:6").Insert
Rangeオブジェクトを使用して複数の行を挿入する場合も、1つの行の場合と同様に動作します。
Range("b4:b6").EntireRow.Insert
複数列の挿入
Columns オブジェクトを使用して複数の列を挿入する場合は、列名を引用符で囲んで入力します。 文字を引用符で囲みます。
Columns("B:D").Insert
Rangeオブジェクトを使用して複数の列を挿入する場合も、単一の列の場合と同様に動作します。
Range("b4:d4").EntireColumn.Insert
挿入 − シフトとCopyOrigin
Insertメソッドには2つのオプション引数があります。
- Shift − どの方向にセルをシフトするか
- CopyOrigin − どのセルの書式をコピーするか (上、下、左、右)
Shift引数は、行や列全体を挿入する際には関係ありません。この引数では、下にシフトするか右にシフトするかを示すことができるだけです。
- xlShiftDown − セルを下にシフトする
- xlShiftToRight − セルを右にシフトする
ご覧のとおり、上や右へのシフトはできません。
CopyOrigin引数には2つの入力候補があります。
- xlFormatFromLeftorAbove − (0) 新しく挿入されたセルは、上または左のセルから書式を受け取ります。
- xlFormatFromRightorBelow − (1) 新しく挿入されたセルは、下または右のセルから書式を受け取ります。
CopyOrigin引数の例を見てみましょう。これが最初の状態です。
この例では、上の行から書式を取って行を挿入します。
Rows(5).Insert , xlFormatFromLeftOrAbove
この例では、下の行の書式を使用して行を挿入します。
Rows(5).Insert , xlFormatFromRightOrBelow
その他の挿入例
コピーした行または列の挿入
コピーされた行を挿入したい場合は、以下のようなコードを使用します。
Range("1:1").Copy
Range("5:5").Insert
ここでは、1行目をコピーして、5行目に挿入しています。
セルの値に応じた行の挿入
範囲内をループして、セルの値に応じて行を挿入します。
Sub InsertRowswithSpecificValue()
Dim cell As Range
For Each cell In Range("b2:b20")
If cell.Value = "insert" Then
cell.EntireRow.Insert
End If
Next cell
End Sub
行や列の削除
行や列を削除するには、単純にDeleteメソッドを使います。
Rows(1).Delete
Range("a1").EntireRow.Delete
Columns(1).Delete
Range("a1").EntireColumn.Delete