「エクセルvba リストオブジェクト列数変更」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
ListObjectオブジェクトの列数を変更するVBA(Visual Basic for Applications)のコードを探している方による検索です。
「列数変更」ということは、列の削除か追加です。
まずは、ListObjectオブジェクト・テーブルから列を削除するマクロをご紹介します。
テーブルの1列目を削除するサンプルマクロ
以下のようなマクロで、アクティブなシートの一つ目のテーブルの、先頭の列・1列目を削除できます。ActiveSheet.ListObjects(1).ListColumns(1).Delete
End Sub
ListColumnsプロパティの引数に「1」を指定することで、ListColumnsコレクションに含まれる1つ目のListColumnオブジェクトを取得して、ListColumnオブジェクトのDeleteメソッドで削除を行っています。
ListObjectオブジェクトから列を削除するには、ListColumnオブジェクトのDeleteメソッドです。
ListColumnsプロパティの引数に「2」に変更すれば2列目、「3」にすれば3列目の削除となります。
テーブルの最終列を削除するサンプルマクロ
以下のマクロで、アクティブなシートの一つ目のテーブルの最終列・最後の列を削除できます。With ActiveSheet.ListObjects(1).ListColumns
.Item(.Count).Delete
End With
End Sub
ListColumns.Countプロパティで列数を取得して、その列数を使って最後の列を表すListColumnオブジェクトを取得して削除しています。
最終列を取得するために、先の1列目を削除するマクロよりコードが長くなっていますが、考え方は同じです。
オブジェクト式の文法がしっかりと身についていないと、このマクロはちょっと難しいかもしれません。このマクロが理解できないという方は、以下のような変数を使ったマクロをまずは理解しましょう。Dim cnt As Long
cnt = ActiveSheet.ListObjects(1).ListColumns.Count
ActiveSheet.ListObjects(1).ListColumns(cnt).Delete
End Sub
最終更新日時:2019-09-19 03:35
- Newer:Google Apps Scriptで月の加算を行う
- Older:文字列の折り返しを変更するWordマクロ
Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルの列を削除するExcelマクロ