Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » 非表示の全ワークシートを削除するマクロ

非表示の全ワークシートを削除するマクロ

対象:Excel2003, Excel2007, Excel2010

「エクセル 隠しシート 削除する 方法」
という検索が行われていました。

2003までのExcelの場合はメニュー[書式]-[シート]-[表示しない]から、シートを非表示にすることができます。

Excel 2007・2010の場合はシート見出し上で右クリックして表示されるショートカットメニュー[非表示]を利用するのが便利でしょう。

その非表示となっているシートを削除する方法を探している方による検索です。

[スポンサードリンク]

いくつかの解決方法が考えられますが、まずはVBA(Visual Basic for Applications)で作成したマクロをご紹介します。

Sub 非表示のワークシートをすべて削除する()
 If MsgBox("非表示のワークシートをすべて削除していいですか?", _
  vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub

 Application.DisplayAlerts = False

 Dim sh As Worksheet
 For Each sh In Worksheets
  If sh.Visible = xlSheetHidden Then sh.Delete
 Next

 Application.DisplayAlerts = True
End Sub

実際に削除しているのはループ処理
  For Each sh In Worksheets
   If sh.Visible = xlSheetHidden Then sh.Delete
  Next
の部分です。

Visibleプロパティを調べてxlSheetHidden(非表示)だったら、Deleteメソッドを実行しています。

削除処理のときに確認メッセージが表示されないように、ループ処理に入る前に
  Application.DisplayAlerts = False
とApplicationオブジェクトのDisplayAlertsプロパティをFalseに設定しています。

非表示のワークシートをすべて削除してしまうので、処理に入る前に
  If MsgBox("非表示のシートをすべて削除していいですか?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
と、確認メッセージを表示して「いいえ」ならマクロを抜けるようにしています。

最終更新日時:2019-10-31 11:12

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » 非表示の全ワークシートを削除するマクロ

「Sheets・Worksheet」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.