Excelシート増えすぎ問題を一瞬で解決!指定シート以外をまとめて削除するVBA活用術

【業務効率化】VBA
スポンサーリンク

データ集計や顧客リストの整理をしていると、「気づいたらExcelのシートが50枚以上に増えていた…」なんてことはありませんか?

必要なシートは「売上表」と「顧客名簿」だけなのに、他を1枚ずつ右クリックして「削除」を押す作業。1枚3秒かかるとすると、50枚で150秒(2分半)もかかります。しかも、間違えて必要なシートを消してしまうリスクもあります。

今回は、そんな「ポチポチ作業」を卒業して、「指定したシート以外を数秒で一括削除する魔法」を紹介します。

【業務効率化】VBAの記事を見る 

コピペで使えるVBAコード

まずは、以下のコードをコピーして使ってみてください。

今回は例として、「残したいシート」と「集計結果」という名前のシート以外をすべて削除する設定にしています。

Sub DeleteSheetsExceptSpecified()
    Dim ws As Worksheet
    Dim keepSheet1 As String
    Dim keepSheet2 As String
   
    ' --- 設定エリア:残したいシート名をここに入力 ---
    keepSheet1 = "残したいシート"
    keepSheet2 = "集計結果"
    ' --------------------------------------------

    ' 確認メッセージをオフにする(「本当に消しますか?」を出さない)
    Application.DisplayAlerts = False
   
    ' すべてのシートを順番にチェックする
    For Each ws In ThisWorkbook.Worksheets
        ' シート名が指定した名前以外の場合、削除する
        ' ※少なくとも1枚はシートを残す必要があります
        If ws.Name <> keepSheet1 And ws.Name <> keepSheet2 Then
            If ThisWorkbook.Worksheets.Count > 1 Then
                ws.Delete
            End If
        End If
    Next ws
   
    ' 確認メッセージをオンに戻す
    Application.DisplayAlerts = True
   
    MsgBox "削除が完了しました!"
End Sub

プログラムの仕組みと動作の流れ

このプログラムがどのような処理を行っているのか、3つのステップに分けて解説します。

  • 削除しないシート名を保持する:keepSheet1などの変数に対して、削除から除外したいシート名を記憶させます。
  • 削除確認のメッセージ表示を一時停止する:通常、シート削除時には確認メッセージが表示されますが、DisplayAlerts = False を指定することで、警告を出さずにスムーズな連続処理を可能にします。
  • 全シートの名前を確認して不要なものを削除する:For Each構文を用いてすべてのシート名を順番に確認し、指定したシート名以外のものを自動的に削除していきます。

実行時の注意点

  • 元に戻す操作(Ctrl+Z)ができません:VBAを用いて削除したシートは元に戻すことができませんので、実行前に必ずファイルを保存しておくことをおすすめします。
  • すべてのシートを削除することはできません:Excelの仕様上、ブック内に最低1枚のシートを残す必要がありますのでご注意ください。

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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