メインコンテンツへスキップ
【VBA】行や列を削除する

【VBA】行や列を削除する

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

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

関連記事

Excel VBAとAccess VBA、どちらからはじめたほうが良い?
·3 分
Programming VBA
【VBA】オートフィルターを使う
··3 分
Programming VBA
【VBA】クリップボードを利用する
·2 分
Programming VBA