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

ListObject・テーブルのすべての行を削除する

対象:Excel2007, Excel2010, Excel2013

「vba listrows() テーブルの1行から最終行削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

「テーブルの1行から最終行削除」ということですから、テーブルのすべての行を削除するVBAのコードを探していらしたのでしょうか。

既にご紹介しているとおり、テーブル内の任意の一行を削除するのならば、ListRowオブジェクトのDeleteメソッドを使えばOKです。

[スポンサードリンク]

ListRowsコレクションにDeleteメソッドはない

「listrows()」というキーワードが使われているので、ListRowオブジェクトを単独のオブジェクトとして持つListRowsコレクションにDeleteメソッドがあると考えたのかもしれません。

ですが、オブジェクトブラウザーで確認するとわかるとおり、ListRowsコレクションに、Deleteメソッドは用意されていません。

ListObject・テーブルのすべての行を削除する

すべてのListRowオブジェクトを削除するサンプルマクロ

ListRows・ListRowを使うなら、以下のようなマクロで、アクティブなシート上の一つ目のテーブルのすべての行を削除できます。
Sub テーブルの行をすべて削除する()
 Dim i As Long
 With ActiveSheet.ListObjects(1).ListRows
  For i = .Count To 1 Step -1
   .Item(i).Delete
  Next i
 End With
End Sub

アクティブなシートの(ActiveSheet)、1つ目のテーブルの(.ListObjects(1))、すべての行(.ListRows)に対して、
 With ActiveSheet.ListObjects(1).ListRows

最終行から(i = .Count)、1行目に向かって(To 1)、下から(Step -1)ループを回して、
  For i = .Count To 1 Step -1

ListRow.Deleteメソッドで削除を行っています。
   .Item(i).Delete

最終更新日時:2019-11-22 18:05

[スポンサードリンク]

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

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

検索


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

.