再表示不可の設定でシートを非表示

マクロとは

シートの表示非表示を設定 3行マクロ 53回

再表示させない設定でシートを非表示にする

Excelでは、特定のシートを非表示にして、重要なデータが入力されているシートを一時的に隠すことができます。
ただし、再表示することができるとわかっている人には、簡単に表示されてしまいます。
どうしても非表示にしておきたい時には、これでは困りますね。
そこで、今回の3行マクロでは、再表示させないように設定することにします。
(サンプルファイルは、こちらから 3行マクロ53回サンプルデータ
Excelバージョン:Excel20192016201320102007

Worksheet.Visible プロパティ

シートの表示非表示は、WorksheetオブジェクトのVisibleプロパティをTRUEかFALSEに設定することで操作できます。
再表示不可で非表示にしたいときは、プロパティに定数 xlVeryHidden を設定します。
シート非表示にするマクロ1
Sheet2を非表示にする時は、
Sub シート非表示()
    Worksheets("Sheet2").Visible = False
End Sub
    
シート非表示にするマクロ2
シート2が非表示になりました。
シート非表示にするマクロ3
再表示したい時は、
Sub シート表示()
    Worksheets("Sheet2").Visible = True
End Sub
    
あるいは、シートタブ上で右クリックして表示されるメニューから、再表示を選択しても表示されます。
シート非表示にするマクロ4

再表示不可ならVisible プロパティに xlVeryHidden

再表示をさせたくない時は、Visible プロパティに定数 xlVeryHidden を設定します。
Sub シート非表示再表示不可で()
    Worksheets("Sheet2").Visible = xlSheetVeryHidden
End Sub
    
この場合は、再表示が不可なので、右クリックしても再表示のメニューがグレーで選択できません。
 シート非表示にするマクロ5

マクロがわかると非表示のシートを見ることができる

グレーアウトしていても、マクロのコードを勉強したことのある人なら、非表示のシートを見ることができるかもしれません。VBAを開いて、イミディエイトウィンドウに下記のようなコードを書くだけで、表示されてしまうからです。
 
対策として、非表示にしたい、シートのシートモジュールにイベントプロシージャを記述します。
Private Sub Worksheet_Activate()
  Sheets("Sheet2").Visible = xlVeryHidden
End Sub
すると、シートを再表示にして選択しようとすると、シートをアクティブにするときに、イベントのマクロが実行されます。結果シートは再び非表示になります。
 

こちらもおすすめ