目次

列を削除したい

今回は、 ExcelVBA(エクセルブイビーエー)のマクロでワークシートの指定の列を削除するマクロを作成してみました。 Columns().Delete の記述を使用しています。

B 列が削除されています。
B 列が削除されています。

以前の投稿で、行を削除するマクロを作成してみましたので、よければそちらもご覧ください。

ExcelVBA で行を削除したい。 Rows().Delete 使用。

目次まで戻る

A-Z の列名で指定

早速、列を削除するマクロを作成してみました。「ActiveSheet」は、現在のワークシートを指定しています。「Columns("B")」は、「B 列」を指定しています。「Delete」メソッドで、現在のワークシートの B 列を削除するマクロになっています。

行を削除する場合は、「Rows(2).Delete」と行の番号を数字で指定しましたが、列の削除では、列のアルファベットの名前で指定することもできるようです。

Sub 列を削除するマクロ_列名指定()

ActiveSheet.Columns("B").Delete

End Sub

上記のマクロを以下の画像のワークシート上で実行してみます。マクロを実行すると B 列が削除されると思います。

B 列を削除したい。
B 列を削除したい。

マクロを実行すると、 B 列が削除されています。マクロが成功したようです。

B 列が削除されている。
B 列が削除されている。

目次まで戻る

0-9 の列番号で指定

今度は、削除する列の指定を 0-9 の数字の列番号で行ってみたいと思います。以下のマクロを作成してみました。上のマクロでは、「Columns("B")」として 2 列目を削除しましたが、今度は、「Columns(2)」と書いています。同じく B 列が削除されるマクロになっています。

Sub 列を削除するマクロ_列番号指定()

ActiveSheet.Columns(2).Delete

End Sub

以下のワークシートの内容でマクロを実行してみます。

Columns(2).Delete で 2 列目を削除したい。
Columns(2).Delete で 2 列目を削除したい。

マクロを実行すると、以下の画像の結果になりました。「Columns(2).Delete」と直接 2 列目を指定しても削除可能なようですね。

2 列目が削除されています。
2 列目が削除されています。

目次まで戻る

テスト環境

  • Windows 10
  • Microsoft Office Excel 2003

目次まで戻る

参考資料

Excel の列番号を英文字に変換する方法 | Microsoft Docs
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/convert-excel-column-numbers

目次まで戻る

あとがき

直感的には、 A-Z からなる列名で指定した方が便利そうですが、 Column プロパティで列番号を取得してから列を削除したい場合などは、数字での指定も向いているかもしれません。

Sub columnプロパティで列番号取得後に列削除するマクロ()

Dim col_no As Long '列番号を格納する変数を宣言しています。

col_no = Range("B1").Column '列番号を取得しています。

Debug.Print "列番号は? " & col_no 'イミディエイトウィンドウに列番号を出力しています。

ActiveSheet.Columns(col_no).Delete '列番号を使用して列を削除しています。

End Sub
columnプロパティで列番号取得後に列削除するマクロ
columnプロパティで列番号取得後に列削除するマクロ

以上、閲覧ありがとうございました。

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿