更新日:、 作成日:
VBA 列を削除する
はじめに
Excel VBA マクロの列を削除する方法を紹介します。
Columns(2).Delete または Range("B1").EntireColumn.Delete メソッドから、列「B」を削除できます。
列を指定して取得するには「列を取得する」をご覧ください。
行を削除するには「行を削除する」をご覧ください。
列を削除する
Columns の引数に列番号または列名を指定すると、その列を削除できます。
列「B」を削除するには Columns(2).Delete または Columns("B").Delete を入力します。
Columns(2).Delete
Columns("B").Delete

Range の引数にセル名を指定すると、そのセルを取得できます。EntireColumn からその列を取得できます。
セル「B1」の列を削除するには Range("B1").EntireColumn.Delete を入力します。
Range("B1").EntireColumn.Delete
複数列を削除する
列の範囲「B ~ C」を削除するには Range("B:C").Delete または Range("B:B", "C:C").Delete を入力します。
' B ~ C 列を削除
Range("B:C").Delete
Range("B:B", "C:C").Delete
Range(Columns(2), Columns(3)).Delete
Range("B1:C1").EntireColumn.Delete

スポンサーリンク
Delete と Clear の違い
Delete 以外に Clear メソッドからも列をクリアできます。
詳しくは「列をクリアする」をご覧ください。
Range("B:B").Delete ' 削除
Range("B:B").Clear ' クリア
- Delete:列そのものを削除し、左に移動する。
- Clear:列は残して、すべての値や書式をクリアする。


削除後に列を移動するときは Delete を使用し、列はそのまま残したいときは Clear を使用します。
別シートの列を削除する
シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。
Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。

' Sheet1 の列を削除
Worksheets("Sheet1").Columns(1).Delete
Worksheets(1).Columns(1).Delete
' Sheet2 の列を削除
Worksheets("Sheet2").Columns(1).Delete
Worksheets(2).Columns(1).Delete
Sheet1 に Columns を入力すると、自身のシートの列になります。自身を表す Me. が省略されています。
' どちらも同じコード
Dim r As Range
Set r = Columns(1)
Set r = Me.Columns(1)
標準モジュールに Columns を入力すると、開いているシートの列になります。アクティブシートを表す ActiveSheet. が省略されています。
' どちらも同じコード
Dim r As Range
Set r = Columns(1)
Set r = ActiveSheet.Columns(1)
スポンサーリンク