【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列までを削除します。

関連ページ