非表示方法
VBAでシートを表示・非表示する際、下のように書きます。
Sub Main
Sheets(1).Visible = True(またはFalse)
End Sub
この書き方をすると、せっかく非表示にしていたシートが
Excel使用者に再表示されてしまいます。
そこで何かないかと調べたところ、Microsoftの公式ドキュメント(※)にありました。
Sub Main
Sheets(1).Visible = xlVeryHidden
End Sub
Falseと書かず「xlVeryHidden」と書くことで、
再表示のシート一覧には表示されなくなります。
再度、表示させるにはVBAで「Visible = True」と設定して、
プログラムを実行することで表示されます。
注意点
マクロ編集用の画面(Visual Basic Editor)を開くと、
左のメニューバーにxlVeryHiddenで非表示にしたシートが表示されます。
そのため、勘が鋭くてVBAの知識がある人は
これで表示させることができてしまいます。
対策としては、VBAProjectに対してパスワードロックをかけてしまえば、
VBAで操作することができなくなります。
手間ですが、これが堅実的なやり方かなと思いました。
ExcelVBAは社会人になってから初めて使ったプログラムですが、
12,3年使ってきて、初めてこの機能があることを知りました。
そして調べてみると、Office2003の頃からあるそうです。
TrueかFalseしかないと思って過ごしてきましたが、
意外と知らないものだなと思いました。
参考
[シートを非表示にし、マクロで xlVeryHidden 定数を使用する](シートを非表示にし、マクロで xlVeryHidden 定数を使用する - Office | Microsoft Docs)