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
【実行結果】
(下の画像のようになります)
プログラム実行後の画像

関連リンク

ページの先頭へ