ExcelVBAでアクティブシート以外のシートを削除する
ExcelのVBAでアクティブシート以外のシートを削除する方法。
残したいシート(アクティブシート)を先頭に移動しておき、先頭シートを残すように最終シートから先頭シートに向かってシートの削除を行う。
1 2 3 4 5 6 7 8 9 10 11 12 | Sub SheetsClear() '' アクティブシートを先頭に移動 ActiveSheet.Move Before:=Sheets(1) '' 確認・警告メッセージの抑制 Application.DisplayAlerts = False '' 最終シートから先頭シートの1つ前までを削除 For i = Sheets.Count To 2 Step -1 Sheets(i).Delete Next i '' 確認・警告メッセージの抑制解除 Application.DisplayAlerts = True End Sub |
上記の例では、シートの削除を行うときに確認メッセージが表示されないように「Application.DisplayAlerts」にFalseを設定し、処理が終わったらTrueに戻している。