見出し画像

行を追加する

 Excel VBAで行を追加するには、主に以下の2つの方法があります。

Rowsオブジェクトを使用する

VBA
' 現在の行の下に1行挿入
ActiveSheet.Rows(ActiveCell.Row + 1).Insert

' 3行目に3行挿入
Worksheets("Sheet1").Rows(3).Insert 3
コードは注意してご使用ください。

RangeオブジェクトとEntireRowプロパティを使用する

VBA
' 現在の行の下に1行挿入
Range(ActiveCell.Address).EntireRow.Insert

' 3行目に3行挿入
Range("A3:B3").EntireRow.Insert 3
コードは注意してご使用ください。

挿入オプション

 上記のコードに加えて、挿入オプションを指定することで、挿入する行の書式やセル内容を調整できます。

 ShiftDown: 既存の行を下にシフトするかどうか。Trueの場合はシフトし、 Falseの場合は既存の行を上書きします。(デフォルトはTrue)
 Shift: 既存のセルを右にシフトするかどうか。Trueの場合はシフトし、Falseの場合は既存のセルを上書きします。(デフォルトはFalse)
VBA
'  現在の行の下に1行挿入し、既存の行を下にシフト
ActiveSheet.Rows(ActiveCell.Row + 1).Insert ShiftDown:=True

'  3行目に3行挿入し、既存のセルを右にシフト
Worksheets("Sheet1").Range("A3:B3").EntireRow.Insert Shift:=True
コードは注意してご使用ください。

補足

 行を挿入すると、その行以降の行番号がすべて1つずつ増えます。
 複数の行を挿入する場合は、範囲を指定して挿入する必要があります。
 セルにデータが入力されている行に挿入すると、そのデータが下にシフトされます。

参考資料

【ExcelVBA入門】行を挿入するためのInsertメソッドの使い方とは | 侍エンジニアブログ: https://www.youtube.com/watch?v=PimqVRSwR_E
【VBA】セル番号を使わず動的に複数行挿入する - Qiita: https://qiita.com/guren111/items/2cf9c56808e9971a81ba
Excel VBA_行を追加/削除する際に注意したいこと - Zenn: https://m.youtube.com/watch?v=T6oll7fqo90
上記以外にも、特定の条件に基づいて行を挿入したり、挿入した行に書式を設定したりするなど、様々な応用が可能です

この記事が気に入ったらサポートをしてみませんか?