VBAで列を削除する時は、RangeやColumns、EntireColumnのDeleteメソッドを使用します。
対象列の指定方法には、「列番号による数値指定」、「列名によるアルファベット指定」があります。
EntireColumnの場合は、指定したセルの存在する列を削除するので、「セルによる指定」になります。
1列だけ削除
次の3つの選択方法があります。例では、2列目を削除しています。
Rangeを使った列範囲指定
1 2 3 4 |
'2列目を列名で指定 Range("B:B").Delete |
Rangeによる指定では、対象範囲の列(開始列と終了列)をコロンで区切って指定します。
今回のように2列目だけでも、引数は”B″ではなく、”B:B″となります。
Columnsを使った列指定
1 2 3 4 5 6 7 8 |
'2列目を選択 '列番号指定 Columns(2).Delete '列名指定 Columns("B").Delete |
Columnsでは削除対象列を、列番号列による数値指定、列名によるアルファベット指定のどちらもできます。
数値で何列目か指定する時は、ダブルクォーテーションで囲む必要はありません。
Bなどアルファベットで指定する時は、ダブルクォーテーションで囲みます。
EntireColumnを使った対象セルによる列指定
1 2 3 4 5 6 7 8 |
'2列目を選択 '対象セルをRange指定 Range("B1").EntireColumn.Delete '対象セルをCells指定 Cells(1, 2).EntireColumn.Delete |
EntireColumnを使うと、削除する列にあるセルから指定できます。
対象セルの指定は、Range、Cellsどちらの方法でも可能です。
連続した列を削除
連続した列をまとめて削除する方法も、1列だけ削除する時と同様に、3つの削除方法があります。例では、2列目から4列目を削除しています。
Rangeを使った列範囲指定
1 2 3 4 |
'2~4列目を列名で指定 Range("B:D").Delete |
削除する列範囲の、開始列と終了列をコロン(:)でつないで指定します。
Columnsを使った列指定
1 2 3 4 |
'2~4列目を列名で指定 Columns("B:D").Delete |
削除する列範囲の、開始列と終了列をコロン(:)でつないで指定します。
EntireColumnを使った対象セルによる列指定
1 2 3 4 |
'2~4列目をセルで指定 Range("B1:D1").EntireColumn.Delete |
EntireColumnを使うと、削除する列範囲をセルから指定できます。
1つの列を指定する時、RangeとCellsどちらの指定でも可能でした。でも、複数列の場合は、Rangeによる指定になります。
Rangeは複数のセルが指定できるのですが、Cellsは1つのセルしか指定できないからです。
離れた列を削除
離れた列をまとめて削除するには、2つの削除方法があります(※Columnsによる指定はできません)。例では、2列目、4~5列目を選んでいます。
Rangeを使った列範囲指定
1 2 3 4 |
'2列目、4~5列目を列名指定 Range("B:B,D:E").Delete |
対象となる列を指定しますが、離れているセルをカンマ(,)区切りで指定します。連続した列範囲は、コロン(:)で指定します。
※Rangeで2列目を選ぶ時は、Bだけではなく、B:Bと指定するので間違えないようにしましょう。
EntireColumnを使った対象セルによる列指定
1 2 3 4 |
'2列目、4~5列目をセルで指定 Range("B1,D1:E1").EntireColumn.Delete |
EntireColumnを使うと、削除する列範囲をセルから指定できます。
対象となるセルを指定しますが、離れているセルをカンマ(,)区切りで指定します。連続したセル範囲は、コロン(:)で指定します。