未使用ワークシートを削除するには、全シートをループし入力がない事とオブジェクトがない事を調査し、なければDeleteメソッドで削除します。
未使用シートの削除方法
VBA入力画面
入力したコードです。
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です。入力されています。
Sheet2です。未入力です。
Sheet3です。入力されています。
Sheet4です。未入力です。
マクロの実行画面です。未使用シートの削除マクロを実行します。
未使用シートが見つかると、下のような警告メッセージが表示されます。削除する場合は[削除]ボタンをクリックします。
「選択シートに、データが存在する可能性があります。データを完全に削除するには[削除]をクリックしてください。」
未使用シートを削除した結果です。Sheet2とSheet4が削除されています。
Excelマクロのサンプルファイル:
フリーダウンロード
Copyright (C) excel.usefulhp.com All rights reserved.