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
【実行結果】
(下の画像のようになります)
プログラム実行後の画像

関連リンク

ページの先頭へ