VBAで列を削除する方法(一列・複数列)
今回の目標
この記事では、一列のみ削除する方法や、複数列を削除する方法を解説します。
目標リスト
- 一列を削除できるようになる
- 複数列を削除できるようになる
- セルを指定して、そのセルを含む列全体を削除できるようになる
Delete メソッドについて
Columns.Delete メソッドとは
Columns.Delete メソッドは、列を削除します。
Columns プロパティで削除する列を指定し、その列に対して削除(Delete メソッド)を実行します。
例えば、Columns("B:D").Delete では、B~D列の3列が削除され、元のE列以降の列が3列分左にずれます(元のE列はB列、元のF列はC列に移動します)。
Columns.Delete メソッドの構文
C列を削除する処理です。
Columns("C").Delete
D列からF列を削除する処理です。
Columns("D:F").Delete
【別解】Range.Deleteメソッドで列を削除する
Range オブジェクトでも列を削除することが出来ます。
下のプログラムは、C列を削除します。
Range("C:C").Delete
D~F列を削除する処理です。
Range("D:F").Delete
一列を削除する
Columns の引数に、どの列を削除するかを指定します。
サンプルコード
Sub DeleteColumns1()
'B列を削除する
Columns("B").Delete
End Sub
(下の画像のようになります)
複数列を削除する
Columns の Delete メソッドを使って複数列を削除します。
Columns("開始列:終了列")の形式で指定します。
例えば、「Columns("B:C").Delete」なら、B列からC列を削除します。
サンプルコード
Sub DeleteColumns2()
'B列~C列を削除する
Columns("B:C").Delete
End Sub
(下の画像のようになります)
セルが含まれる列を削除する
Range オブジェクトの EntireColumn プロパティを経由してから Delete メソッドを実行することで、「そのセルを含む列全体」に対して列の削除を行えます。 例えば「Range("C1:D2").EntireColumn.Delete」はセルC1~D2を含む列(C列とD列)の2列を削除します。
サンプルコード
Sub DeleteColumns3()
'セルC1~D2の2列(=C~D列目)を削除する
Range("C1:D2").EntireColumn.Delete
End Sub
(下の画像のようになります)
