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

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

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

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

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

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

複数列をまとめて削除するにはRangeオブジェクト
のdeleteメソッド
を使用します。
コードは以下になります。
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
sht.Range(sht.Columns(3), sht.Columns(6)).delete
C列(列番号3)からF列(列番号6)までを削除したいのでRange
の中に
- 削除したい最初の列番号を渡した
columnsオブジェクト
- 削除したい最後の列番号を渡した
columnsオブジェクト
を利用して削除列を指定します。
コードを実行するとC列からF列までを削除します。
