category name  »  page title date

自分のワークシートだけ表示

どこかのワークシートをアクティブにして、それ以外のワークシートをすべて隠蔽してしまいたいことがあります。
下のタブにずらずら出てきて、目障りだという人のために。

実際、計算上用意した臨時のワークシートとか、設定条件を記載したワークシート、テンプレートとして利用するワークシートなどは、ユーザーから見えないほうがよいし、今入力しているワークシートだけが画面に出ているほうが、注力できます。あるワークシートをアクティブにしたい時に、その名前を 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