どこかのワークシートをアクティブにして、それ以外のワークシートをすべて隠蔽してしまいたいことがあります。
下のタブにずらずら出てきて、目障りだという人のために。
実際、計算上用意した臨時のワークシートとか、設定条件を記載したワークシート、テンプレートとして利用するワークシートなどは、ユーザーから見えないほうがよいし、今入力しているワークシートだけが画面に出ているほうが、注力できます。あるワークシートをアクティブにしたい時に、その名前を myName として次の OnlyMyself() を呼ぶと、それが実現します。たいした内容ではないので、コードの説明はしません。
そうはいっても開発段階では、全体を見たいこともあるので、ついでに EveryOne() などを用意しておくとよいでしょう。
標準モジュール OnlyMyself(), EveryOne()
'----- myName ワークシートを表示し、それ以外を隠蔽する
Public Sub OnlyMyself(myName)
Dim sh
With ThisWorkbook.Worksheets(myName)
.Visible = True
.Activate
End With
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> myName Then sh.Visible = False
Next
Application.EnableEvents = True
End Sub
'----- すべてのワークシートを表示する
Public Sub EveryOne()
Dim sh
For Each sh In ThisWorkbook.Worksheets
sh.Visible = True
Next
Application.EnableEvents = True
End Sub