【VBA】行や列を削除する
概要
VBAでシートの行や列を削除するコードはよく使う処理です。
毎回忘れて調べているので、行と列の削除方法について、まとめてみました。
Sheet1にA1からG10までデータが入力されています。

行を削除する
1行だけ削除する
黄色で色を塗った3行目を削除してみます。

シートから1行だけデータを削除するにはRowsオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1Option Explicit
2
3Sub deleteRow()
4
5 Dim sht As Worksheet
6 Set sht = ThisWorkbook.Worksheets("Sheet1")
7
8 sht.Rows(3).delete '3行目を削除する
9
10 Set sht = Nothing
11
12End Sub
1sht.Rows(3).delete '3行目を削除する
削除したい行数をRowsオブジェクトに渡し、deleteメソッドを実行します。
コードを実行すると3行目が削除されます。

複数行まとめて削除する
黄色で色を塗った3行目から6行目までをまとめて削除してみます。
複数行をまとめて削除するにはRangeオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1Option Explicit
2Sub deleteRows()
3
4 Dim sht As Worksheet
5 Set sht = ThisWorkbook.Worksheets("Sheet1")
6
7 sht.Range("3:6").delete
8
9 Set sht = Nothing
10
11End Sub
1sht.Range("3:6").delete
削除したい最初の行と最後の行をコロンで結合した文字列をRangeオブジェクトに渡し、deleteメソッドを実行します。
コードを実行すると3行目から6行目をまとめて行削除します。

列を削除する
1列だけ削除する
黄色で色を塗ったC列を削除してみます。
列を削除するにはcolumnsオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1Option Explicit
2Sub deleteColumn()
3
4 Dim sht As Worksheet
5 Set sht = ThisWorkbook.Worksheets("Sheet1")
6
7 sht.Columns(3).delete
8
9 Set sht = Nothing
10
11End Sub
1sht.Columns(3).delete
削除したい列番号(今回はC列なので3)をcolumnsオブジェクトに渡しdeleteを実行します。
コードを実行するとC列が削除されます。

複数列まとめて削除する
黄色で色を塗ったC列からF列まで削除してみます。

複数列をまとめて削除するにはRangeオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1Option Explicit
2Sub deleteColumns()
3
4 Dim sht As Worksheet
5 Set sht = ThisWorkbook.Worksheets("Sheet1")
6
7 sht.Range(sht.Columns(3), sht.Columns(6)).delete
8
9 Set sht = Nothing
10
11End Sub
1sht.Range(sht.Columns(3), sht.Columns(6)).delete
C列(列番号3)からF列(列番号6)までを削除したいのでRangeオブジェクトの中に
- 削除したい最初の列番号を渡したcolumnsオブジェクト
- 削除したい最後の列番号を渡したcolumnsオブジェクト
を利用して削除列を指定します。
コードを実行するとC列からF列までを削除します。
