Excel VBAで「先頭以外のシートを削除する」コードを紹介します。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub sample() Application.DisplayAlerts = False Dim i As Long '最終シートから繰り返し For i = Sheets.Count To 1 Step -1 '1シート以外は削除 If i <> 1 Then Sheets(i).Delete End If Next i Application.DisplayAlerts = True End Sub |
解説
繰り返し処理の中で最大シートを取得して、シート位置が1シート以外であればシートを削除していきます。
うめ
最大シート数を取得して、後ろからシートを削除していきます。
For文で「For i = Sheets.Count To 1 Step -1」と指定することで、ループする度にiの数を減らす処理となります。
3シートの場合はi=3となりますが、ループで回すと(シート削除)i=2に減ります。