VBAでシートの行や列を削除するコードはよく使う処理です。
毎回忘れて調べているので、行と列の削除方法について、まとめてみました。
Sheet1にA1からG10までデータが入力されています。
行を削除する
1行だけ削除する
黄色で色を塗った3行目を削除してみます。
シートから1行だけデータを削除するにはRowsオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 |
Option Explicit Sub deleteRow() Dim sht As Worksheet Set sht = ThisWorkbook.Worksheets("Sheet1") sht.Rows(3).delete '3行目を削除する Set sht = Nothing End Sub |
8 |
sht.Rows(3).delete '3行目を削除する |
削除したい行数をRowsオブジェクトに渡し、deleteメソッドを実行します。
コードを実行すると3行目が削除されます。
複数行まとめて削除する
黄色で色を塗った3行目から6行目までをまとめて削除してみます。
複数行をまとめて削除するにはRangeオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 |
Option Explicit Sub deleteRows() Dim sht As Worksheet Set sht = ThisWorkbook.Worksheets("Sheet1") sht.Range("3:6").delete Set sht = Nothing End Sub |
7 |
sht.Range("3:6").delete |
削除したい最初の行と最後の行をコロンで結合した文字列を
Rangeオブジェクトに渡し、deleteメソッドを実行します。
コードを実行すると3行目から6行目をまとめて行削除します。
列を削除する
1列だけ削除する
黄色で色を塗ったC列を削除してみます。
列を削除するにはcolumnsオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 |
Option Explicit Sub deleteColumn() Dim sht As Worksheet Set sht = ThisWorkbook.Worksheets("Sheet1") sht.Columns(3).delete Set sht = Nothing End Sub |
7 |
sht.Columns(3).delete |
削除したい列番号(今回はC列なので3)をcolumnsオブジェクトに渡し
deleteを実行します。
コードを実行するとC列が削除されます。
複数列まとめて削除する
黄色で色を塗ったC列からF列まで削除してみます。
複数列をまとめて削除するにはRangeオブジェクトのdeleteメソッドを使用します。
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 |
Option Explicit Sub deleteColumns() Dim sht As Worksheet Set sht = ThisWorkbook.Worksheets("Sheet1") sht.Range(sht.Columns(3), sht.Columns(6)).delete Set sht = Nothing End Sub |
7 |
sht.Range(sht.Columns(3), sht.Columns(6)).delete |
C列(列番号3)からF列(列番号6)までを削除したいので
Rangeオブジェクトの中に
- 削除したい最初の列番号を渡したcolumnsオブジェクト
- 削除したい最後の列番号を渡したcolumnsオブジェクト
を利用して削除列を指定します。
コードを実行するとC列からF列までを削除します。
コメント