隠しシート(非表示シート)は恩恵もあるが弊害もある

シートの表示状態はWorksheet.Visibleプロパティで設定します。

Visibleプロパティの詳細については「VBAでシートの表示と非表示を設定する」をご参照ください。

ブックの中に隠しシート(非表示シート)がある場合、ブックを開いてぱっと見ただけでは分かりません。

再表示の操作を行うしか隠しシートがあるかどうか分かりませんが、再表示不可の非表示になっている場合はExcelの操作では隠しシートの存在に気が付きません。

シートの非表示は使い勝手が向上するなどの恩恵もありますが、非表示にしたこと自体を忘れてしまうという弊害もまたあります。

個人情報など秘密情報をExcelで管理することもあるとは思いますが、それを隠しシートにしてしまうと作った本人が忘れてしまい、それが他者に渡って個人情報流出、という問題になりかねません。

そういうことを未然に防ぐために、隠しシートがないかは確認するようにしましょう。

隠しシートを全て表示するコード

以下のコードはブックの隠しシートを全て表示するコードです。非表示シートは2種類の状態があります。Excel上でも再表示ができるものと、できないものの2つです。

それぞれ再表示時にシートの見出しの色を分けて表示するようにしています。

色を変えたい場合はRGB関数の値を変えてください。RGB値は「VBAでWebカラーCSS3の147色を指定する」をご参考ください。

6行目のループでWorksheetsコレクションではなくSheetsコレクションを利用しているのは、グラフシートなどを利用している場合を考慮しています。

 

実行例

3つのシートがあり、2番目がxlSheetHidden(非表示)、3番目がxlSheetVeryHidden(再表示不可の非表示)になっている場合に、上のコードを実行すると以下のようになります。

2番目のシートはグラフシートですが、ワークシート同様に再表示と見出し色が設定されます。