Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルの列を削除するExcelマクロ

ListObject・テーブルの列を削除するExcelマクロ

対象:Excel2007, Excel2010, Excel2013

「エクセルvba リストオブジェクト列数変更」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ListObjectオブジェクトの列数を変更するVBA(Visual Basic for Applications)のコードを探している方による検索です。

「列数変更」ということは、列の削除か追加です。

まずは、ListObjectオブジェクト・テーブルから列を削除するマクロをご紹介します。

[スポンサードリンク]

テーブルの1列目を削除するサンプルマクロ

以下のようなマクロで、アクティブなシートの一つ目のテーブルの、先頭の列・1列目を削除できます。
Sub テーブルの列を削除する_先頭列()
 ActiveSheet.ListObjects(1).ListColumns(1).Delete
End Sub

ListColumnsプロパティの引数に「1」を指定することで、ListColumnsコレクションに含まれる1つ目のListColumnオブジェクトを取得して、ListColumnオブジェクトのDeleteメソッドで削除を行っています。

ListObject・テーブルの列を削除するExcelマクロ

ListObjectオブジェクトから列を削除するには、ListColumnオブジェクトのDeleteメソッドです。

ListColumnsプロパティの引数に「2」に変更すれば2列目、「3」にすれば3列目の削除となります。

テーブルの最終列を削除するサンプルマクロ

以下のマクロで、アクティブなシートの一つ目のテーブルの最終列・最後の列を削除できます。
Sub テーブルの列を削除する_最終列()
 With ActiveSheet.ListObjects(1).ListColumns
  .Item(.Count).Delete
 End With
End Sub

ListColumns.Countプロパティで列数を取得して、その列数を使って最後の列を表すListColumnオブジェクトを取得して削除しています。

最終列を取得するために、先の1列目を削除するマクロよりコードが長くなっていますが、考え方は同じです。

オブジェクト式の文法がしっかりと身についていないと、このマクロはちょっと難しいかもしれません。このマクロが理解できないという方は、以下のような変数を使ったマクロをまずは理解しましょう。
Sub テーブルの列を削除する_最終列_変数利用()
 Dim cnt As Long
 cnt = ActiveSheet.ListObjects(1).ListColumns.Count
 ActiveSheet.ListObjects(1).ListColumns(cnt).Delete
End Sub

最終更新日時:2019-09-19 03:35

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルの列を削除するExcelマクロ

「ListObjectオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.