アクティブシート以外を削除するマクロ

最近では主流となったタブブラウザですが、例えばFirefoxだと「他のタブをすべて閉じる」という機能があります。
これをExcelに応用して、アクティブシート以外のシートをすべて削除するマクロを作ってみました。
なお一々、確認ダイアログが出てしまいますが、既定の動作のようで回避できませんでした。Excel2007で確認しました。

Sub アクティブシート以外を削除()
    For Each s In Sheets
        If s.Name <> ActiveSheet.Name Then
            s.Delete
        End If
    Next
End Sub

2014-07-17追記
確認ダイアログが一回だけ出る方法を思い付きました。

Sub アクティブシート以外を削除()
    ReDim otherSheets(Sheets.Count - 2)
    x = 0
    For Each s In Sheets
        If s.Name <> ActiveSheet.Name Then
            otherSheets(x) = s.Name
            x = x + 1
        End If
    Next
    Sheets(otherSheets).Delete
End Sub

コメント

タイトルとURLをコピーしました