テーブルの先頭行・1行目を削除するサンプルマクロ
一つ目は、アクティブなシートの、一個目のテーブル・ListObjectオブジェクトの、1行目を削除するマクロです。
Sub テーブルの先頭行を削除する[]
ActiveSheet.ListObjects[1].ListRows[1].Delete
End Sub
ListRowsコレクションオブジェクトの、_Defaultプロパティの引数に行番号を指定すると、テーブルの行を表すListRowオブジェクトを取得できます。
ここでは引数に「1」を指定することで、テーブルの1行目を表すListRowオブジェクトを取得して、取得したListRowオブジェクトのDeleteメソッドで、行を削除しています。
テーブルの最終行を削除するサンプルマクロ
二つ目は、最後の行・最終行を削除するマクロです。
Sub テーブルの最終行を削除する[]
With ActiveSheet.ListObjects[1].ListRows
.Item[.Count].Delete
End With
End Sub
ListRows.Countプロパティで、テーブルの行数を取得できます。
その値をListRows.Itemプロパティの引数に指定することで、最後の行を表すListRowオブジェクトを取得して、Deleteメソッドで削除しています。
コレクションオブジェクトオブジェクトから、そのメンバーである単一オブジェクトを取得する方法について理解が曖昧な方の場合は、以下のようなマクロのほうがわかりやすいでしょう。
Sub テーブルの最終行を削除する_変数利用[]
Dim lst As ListObject
Dim cnt As Long
Set lst = ActiveSheet.ListObjects[1]
cnt = lst.ListRows.Count
lst.ListRows[cnt].Delete
End Sub
先の、
With ActiveSheet.ListObjects[1].ListRows
.Item[.Count].Delete
End With
というコードと、やっていることは同じですが、処理をバラしています。
オブジェクト変数・lstに、アクティブなシートの一つ目のListObjectを格納して、
Set lst = ActiveSheet.ListObjects[1]
行数をListRowsコレクションオブジェクトのCountプロパティで取得して、変数・cntに代入して、
cnt = lst.ListRows.Count
変数・cntをListRowsコレクションオブジェクトの_Defaultプロパティに指定することで最終行を取得して、Deleteメソッドで削除しています。
lst.ListRows[cnt].Delete
最終更新日時:2019-08-02 07:58