行を削除する
Excel VBAで行を削除するには、主に以下の2つの方法があります。
Deleteメソッドを使用する
VBA
' 現在の行を削除
ActiveSheet.Rows(ActiveCell.Row).Delete
' 3行目から5行目までを削除
Worksheets("Sheet1").Range("A3:A5").EntireRow.Delete
コードは注意してご使用ください。
2. Clearメソッドを使用する
VBA
' 現在の行の値をクリア
ActiveSheet.Rows(ActiveCell.Row).Clear
' 3行目から5行目までの値をクリア
Worksheets("Sheet1").Range("A3:A5").EntireRow.Clear
コードは注意してご使用ください。
削除オプション
上記のコードに加えて、削除オプションを指定することで、削除する行以下の行の処理を制御できます。
ShiftUp: 既存の行を上にシフトするかどうか。Trueの場合はシフトし、Falseの場合は空いた行をそのまま残します。(デフォルトはTrue)
VBA
' 現在の行を削除し、既存の行を上にシフト
ActiveSheet.Rows(ActiveCell.Row).Delete ShiftUp:=True
' 3行目から5行目までを削除し、空いた行をそのまま残す
Worksheets("Sheet1").Range("A3:A5").EntireRow.Delete ShiftUp:=False
コードは注意してご使用ください。
補足
行を削除すると、その行以降の行番号がすべて1つずつ減ります。
複数の行を削除する場合は、範囲を指定して削除する必要があります。
セルにデータが入力されている行を削除すると、そのデータも一緒に削除されます。
参考資料
【Excel VBA入門】行・列の削除とクリアをする方法 | 侍エンジニアブログ: https://team21.jp/excel/delete-rows-using-vba/
【VBA】行削除・列削除をする方法 - Qiita: https://qiita.com/ishida-r/items/deabc71c107feef96635
Excel VBA_行を追加/削除する際に注意したいこと - Zenn: http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_row_del.html
上記以外にも、特定の条件に基づいて行を削除したり、削除した行に処理を実行したりするなど、様々な応用が可能です。
この記事が気に入ったらサポートをしてみませんか?