非表示方法

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)