【VBA】行や列を削除する

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

Licensed under CC BY-NC-SA 4.0
最終更新 2018年8月17日 11:25
Hugo で構築されています。
テーマ StackJimmy によって設計されています。