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

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

対象:Excel2007, Excel2010, Excel2013

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

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

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

[スポンサードリンク]

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

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

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

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

すべての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

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


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

.