未使用ワークシートを削除するには、全シートをループし入力がない事とオブジェクトがない事を調査し、なければDeleteメソッドで削除します。


未使用シートの削除方法

VBA入力画面
未使用シート削除のVBE入力画面

入力したコードです。

Sub 未使用シートの削除()
    Dim i As Integer
    
    For i = Worksheets.Count To 1 Step -1
        Worksheets(i).Select
        ActiveCell.SpecialCells(xlLastCell).Select
        If "$A$1" = Selection.Address And Range("A1").Value = "" Then
            If ActiveSheet.Shapes.Count = 0 Then
                ActiveSheet.Delete
            End If
        End If
    Next
End Sub

プログラムの説明


Subプロシージャの宣言
Sub 未使用シートの削除()
整数型の変数を宣言
Dim i As Integer
シート数分ループする
For i = Worksheets.Count To 1 Step -1
シートを選択する
Worksheets(i).Select
入力されている最終セルを選択する
ActiveCell.SpecialCells(xlLastCell).Select
選択セルがA1セルでA1セルが空白ならば
If "$A$1" = Selection.Address And Range("A1").Value = "" Then
オブジェクトが0ならば
If ActiveSheet.Shapes.Count = 0 Then
シートを削除する
ActiveSheet.Delete
If関数の終了
End If
If関数の終了
End If
ループの終了
Next
プロシージャの終了
End Sub

未使用シートの削除の実行画面

Sheet1です。入力されています。
Sheet1

Sheet2です。未入力です。
Sheet2

Sheet3です。入力されています。
Sheet3

Sheet4です。未入力です。
Sheet4

マクロの実行画面です。未使用シートの削除マクロを実行します。
マクロ実行画面

未使用シートが見つかると、下のような警告メッセージが表示されます。削除する場合は[削除]ボタンをクリックします。
「選択シートに、データが存在する可能性があります。データを完全に削除するには[削除]をクリックしてください。」
削除の警告メッセージ

未使用シートを削除した結果です。Sheet2とSheet4が削除されています。
削除されたワークシート

Excelマクロのサンプルファイル:フリーダウンロード








Copyright (C) excel.usefulhp.com All rights reserved.