実在するのに表示できないシートとは???
どうすれば表示できるのか???目的はなんなのか???
みなさん、こんにちは。セルネッツ竹本です。
今回は、「実在するシートを表示させない設定」をテーマに、解説をしたいと思います。
◆そもそも何故、そんなことする必要があるのか
ExcelVBAツールでは、ワークシートを上手に活用することで、「ユーザの任意の設定」を反映することができます。
例えば、「部門の選択での初期値」や、「年月の既定値」などです。
これらの設定は、時に誤った操作が行われるリスクをかかえるため、それを触らせたくない。
そんな目的で隠しシートとすることがあります。
「存在自体を気づかせない」というのは、一長一短ありますが、ライセンス認証などのケースでは、ユーザに気づかれないこの仕組みを使うことがあります。
◆では、どうやって設定するのか実際の方法をご紹介します
VBAからは、通常、以下の記述でシート表示のOn/Offを切り替え指定します。
このオーソドックスな方法は、単純なもので、任意のシートタブを右クリック[再表示(U)]すれば、隠されたシートが表示できます。
Worksheets(1).Visible = False ‘非表示
Worksheets(1).Visible = True ‘表示
これに対し、この方法では見えないようにするのが、「xlSheetVeryHidden」を使った以下の書き方です。
Private Sub CommandButton1_Click()
Worksheets(2).Visible = xlSheetVeryHidden
Worksheets("Sheets2").Visible = xlSheetVeryHidden
End Sub
【Point】[シート番号]でも[シート名]でもいずれでもOKです。
◆表示をしたい場合は、
Private Sub CommandButton1_Click()
Worksheets(2).Visible = True
End Sub
VBAプログラムを勉強しながら、実験を繰り返すうつに、自身でも忘れてしまうことがあると思います。
何故なら、手動操作では存在自体を知ることができなくなるためです。(ちょっと怖・・・)
解除は、VBAプログラムからしかできません。
こんなケースで、実は、ブックのシート枚数が正しく認識できていないケースは少なくありませんので、シート枚数をVBAプログラムで確認し、目視枚数と一致しているかどうか。プロの現場では必ずチェックが行われます。
触らせたくない、見られたくないシートは、目的をもって設定する分には、有効な方法とも言えるでしょう。
今回のテーマは、「実在するシートを表示させない設定」について、解説を行いました。
本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。