VBAで行を挿入する方法(1行挿入・複数行挿入)
今回の目標
この記事では、一行のみ挿入する方法や、複数行を挿入する方法を解説します。
目標リスト
- 一行を挿入できるようになる
- 複数行を挿入できるようになる
Insert メソッドについて
Rows.Insert メソッドとは
Rows.Insert メソッドは、行を挿入します。
Rows プロパティで挿入する行を指定し、その行に対して挿入(Insert メソッド)を実行します。
例えば、Rows("2:4").Insert では、2行目に2~4行分の3行挿入され、元の2~4行目は下にずれます。
なお、行の指定は文字列で指定しますが、1行のみ挿入する場合は数値で指定可能です。
Rows.Insert メソッドの構文
3行目に1行を挿入する処理です。
Rows("3").Insert
4行目に3行(4行目、5行目、6行目の3行)を挿入する処理です。
Rows("4:6").Insert
【別解】Range.Insertメソッドで行を挿入する
Rangeオブジェクトでも行を挿入することが出来ます。
下のプログラムは、3行目に1行、挿入します。
Range("3:3").Insert
4行目に、4~6行分の3行を挿入する処理です。
Range("4:6").Insert
一行を挿入する
Rows の引数に、何行目に行を挿入するかを指定します。
サンプルコード
Sub InsertRows1()
'2行目に行を挿入する
Rows("2").Insert
End Sub
(下の画像のようになります)
複数行を挿入する
Rows の Insert メソッドを使って複数行を挿入します。
Rows("開始行:終了行")の形式で指定します。
例えば「Rows("2:4").Insert」です。
この例だと、2行目に、3行(2行目から4行目の計3行)、挿入します。
サンプルコード
Sub InsertRows2()
'2行目に3行(2~4行目相当)を挿入する
Rows("2:4").Insert
End Sub
(下の画像のようになります)
セルが含まれる行へ、行を挿入する
Range オブジェクトの EntireRow プロパティを経由してから Insert メソッドを実行することで、「そのセルを含む行全体」に対して行の挿入を行えます。 例えば「Cells(2, 3).EntireRow.Insert」はセルC2を含む2行目に1行挿入します。
サンプルコード
Sub InsertRows3()
'セルB1~C2 の2行(=1~2行目相当)を挿入する
Range("B1:C2").EntireRow.Insert
End Sub
(下の画像のようになります)
