![見出し画像](https://assets.st-note.com/production/uploads/images/146925106/rectangle_large_type_2_ddba462fcf3a2c4241a71307b5849d06.jpeg?width=1200)
行を追加する
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
上記以外にも、特定の条件に基づいて行を挿入したり、挿入した行に書式を設定したりするなど、様々な応用が可能です