列を削除するにはーExcel VBA Tips

Excel VBA Tips集-6

VBAで列を削除するには

Columns()で列を指定し削除する方法

例えばC列は「Columns(3)」または「Columns(“C”)」と表すことができます。
後はDeleteメソッドを用いれば簡単に列を削除できます。

列を削除するサンプルコード1

列を番号で指定しています。

列を削除するサンプルコード2

列をアルファベットで指定しています。

尚、サンプルコード1、サンプルコード2のように特に前置きなく「Columns(~).Delete」と書く場合、暗黙的にアクティブシートの列を削除している点に注意して下さい。明示的にアクティブシートの●列を指定するには「ActiveSheet.Columns(●).Delete」のように書きます。

指定したシートの列を削除する場合

シートを指定するにはWorksheetsコレクションを使います。Worksheetsコレクションとはワークシートの集合体のことです。イメージ的に図示すると以下のような感じです。

worksheetsコレクションのイメージ図

例えば、「売上管理」という名前のワークシートを指定するには、
Worksheets(“売上管理”)とします。

また左から数えて2番目のワークシートを指定するにはWorksheets(2)と書きます。

指定したシートの列を削除するサンプルコード

EntireColumnプロパティを用いて列を指定し削除する方法

例えば「Range(“A1”).EntireColumn.Delete」と指定するとA1セルを含む列を削除することができます。「Range().EntireColumn」Rangeで指定したセルを含む列全体を意味します。

EntireColumnプロパティを利用して複数列を削除するサンプルコード

以下のサンプルコードではRange(“A1:C1”)と、A1セル、B1セル、C1セルを指定しています。これら3つのセルを含む列は全て削除されるので、実質的には、A列、B列、C列が削除されます。

複数の列を削除するには

複数の列を同時に削除する方法をご紹介します。

まず基本として、「Range(“A:A”).Delete」とするとA列を削除できます。
これは「Columns(“A”).Delete」や「Columns(1).Delete」と同じ意味になります。

そして、例えば、「Range(“A:C”).Delete」と指定するとA列、B列、C列を削除できます。また、「Range(“A:C,E:E”).Delete」と指定するとA~C列とE列をいっぺんに削除できます。

複数の列の範囲を一括で削除するサンプルコード

補足:列そのものを削除するのではなく列の値だけを削除したい場合

その場合、DeleteメソッドではなくClearContentsメソッドを用います。

サンプルコード

関連項目

 

使える!Excel VBA Tips集TOPに戻る

 

[AD]自分のペースでゆったり学ぶ Excel VBA

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA