Excel VBAでHiddenとVeryHiddenは何が違うのか
Excel VBAで業務用ツールを作っていると、
利用者に触らせたくないシートが出てくることがあります。
例えば、
- 設定シート
- 内部処理用シート
- マスタシート
- エラーログシート
- 一時作業用シート
などです。
こうしたシートを見える状態のまま配布すると、
利用者が誤って編集してしまうことがあります。
その結果、
マクロが動かない、
設定値が変わる、
処理結果がおかしくなる、
という事故につながります。
このときに使えるのが、
- Hidden
- VeryHidden
です。
どちらもシートを非表示にする方法ですが、
意味はかなり違います。
結論:Hiddenは普通の非表示、VeryHiddenは通常操作では戻せない非表示
まず結論です。
Hidden は、
Excelの通常操作で再表示できる非表示です。
シート見出しを右クリックして、
「再表示」から戻せます。
一方で、
VeryHidden は、
Excel画面の通常操作では再表示できない非表示です。
VBAコードやVBEのプロパティから戻す必要があります。
実務配布用Excelでは、
利用者が必要に応じて見てもよいシートは Hidden。
利用者に触らせたくない内部処理用シートは VeryHidden。
という使い分けが無難です。
ただし、
VeryHiddenはセキュリティ対策ではありません。
あくまで、
誤操作防止
と
画面整理
のために使うものです。
HiddenとVeryHiddenの違い
| 方法 | 表示状態 | 再表示方法 | 向いている場面 | 注意点 |
|---|---|---|---|---|
| Hidden | 通常の非表示 | Excel画面上の「再表示」から戻せる | 一時的に隠したい補助シート | 利用者でも簡単に再表示できる |
| VeryHidden | 通常操作では見えない非表示 | VBAまたはVBEから戻す | 設定シート、内部処理シート、マスタシート | セキュリティ対策ではない |
Hiddenは、
普通の非表示です。
VeryHiddenは、
通常操作では戻せない非表示です。
この違いを理解しておくと、
配布用Excelツールのシート設計がかなり安定します。
Hiddenとは
Hiddenは、
Excelの通常の「非表示」状態です。
Excel画面上でも設定できます。
シート見出しを右クリックして、
「非表示」を選ぶと、
そのシートは見えなくなります。
ただし、
再表示も簡単です。
シート見出しを右クリックして、
「再表示」を選べば戻せます。
つまりHiddenは、
利用者でも戻せる非表示です。
一時的に見せたくないシートや、
普段は邪魔だけど必要なら見てもよいシートに向いています。
VeryHiddenとは
VeryHiddenは、
通常のExcel画面からは再表示できない非表示状態です。
シート見出しを右クリックしても、
再表示一覧には出てきません。
戻すには、
VBAコードで表示状態を変えるか、
VBEのプロパティから変更する必要があります。
そのため、
利用者に誤って触られたくないシートに向いています。
例えば、
- 設定シート
- 内部処理シート
- パターンマスタ
- 作業用マスタ
- ログ管理シート
などです。
ただし、
VBAを知っている人なら戻せます。
そのため、
VeryHiddenを秘密情報の保管場所として使ってはいけません。
実務配布でHiddenが向いているシート
Hiddenが向いているのは、
利用者が必要に応じて見てもよいシートです。
例えば、
- 一時的な確認用シート
- 必要に応じて利用者が見る可能性のある補助シート
- 作業途中だけ隠したいシート
- 普段は邪魔だが完全に隠す必要はないシート
などです。
Hiddenは、
あくまで通常の非表示です。
利用者が再表示できても問題ないシートに使うのが基本です。
実務配布でVeryHiddenが向いているシート
VeryHiddenが向いているのは、
利用者に誤って編集されたくないシートです。
例えば、
- 設定シート
- パターンマスタ
- 内部処理用シート
- エラーログの内部管理シート
- VBA処理で使う中間シート
- 利用者が編集すると処理が壊れるシート
などです。
業務用Excelツールでは、
シートが多くなるほど利用者が迷いやすくなります。
そのため、
操作に不要な内部シートはVeryHiddenにして、
メニューシートや入力シートだけを見せる方が、
使いやすくなることがあります。
VeryHiddenをセキュリティ対策と考えてはいけない
ここは重要です。
VeryHiddenは、
セキュリティ対策ではありません。
VeryHiddenは、
通常画面から見えにくくするだけです。
VBAを見られる人や、
VBEを操作できる人であれば、
再表示できます。
そのため、
次のような情報をVeryHiddenシートに保存してはいけません。
- パスワード
- APIキー
- 個人情報
- 社内機密
- 顧客情報
- 外部に出してはいけないデータ
VeryHiddenは、
秘密情報を隠すための機能ではありません。
実務配布では、
誤操作防止と画面整理のために使うものです。
コピペで試せるHiddenとVeryHiddenの確認コード
次のコードは、
HiddenとVeryHiddenの違いを確認するためのサンプルです。
2枚目のシートをHiddenにし、
3枚目のシートをVeryHiddenにします。
また、
すべてのシートを再表示する復旧コードも入れています。
このコードは、
標準モジュールに貼って、テスト用のxlsmで実行してください。
シートを3枚以上用意してから試してください。
ご注意
以下のVBAコードは、動作イメージを確認するためのサンプルです。
実行前に必ずExcelファイルのバックアップを作成してください。
業務で使用しているファイルに、いきなり貼り付けて実行しないでください。
Excelのバージョンや設定により、動作が異なる場合があります。
Sub CheckHiddenAndVeryHidden()
If ThisWorkbook.Worksheets.Count < 3 Then
MsgBox "このサンプルはシートを3枚以上用意して試してください。", vbExclamation
Exit Sub
End If
ThisWorkbook.Worksheets(2).Visible = xlSheetHidden
ThisWorkbook.Worksheets(3).Visible = xlSheetVeryHidden
MsgBox "2枚目をHidden、3枚目をVeryHiddenにしました。", vbInformation
End Sub
Sub ShowAllSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
MsgBox "すべてのシートを表示しました。", vbInformation
End Sub
xlSheetHidden は、
通常の非表示です。
Excel画面上の操作で再表示できます。
xlSheetVeryHidden は、
通常操作では再表示できない非表示です。
再表示するには、
上の ShowAllSheets のように、
VBAで xlSheetVisible に戻します。
実務配布ではどう使い分けるか
実務配布用のExcelツールでは、
次のように使い分けると分かりやすいです。
利用者が再表示してもよいもの
これはHiddenで十分です。
例えば、
補助シートや確認用シートなどです。
見えていると邪魔だけど、
必要なら利用者が見てもよい。
その程度であれば、
Hiddenで問題ありません。
利用者に触らせたくないもの
これはVeryHiddenが向いています。
例えば、
設定シート、
パターンマスタ、
内部処理用シートなどです。
利用者が誤って編集すると、
VBA処理が壊れる可能性があります。
そのようなシートは、
通常画面から見えないようにしておくと安全です。
秘密情報はそもそも入れない
VeryHiddenは、
秘密情報を守る仕組みではありません。
パスワードやAPIキーなどは、
VeryHiddenシートに入れるべきではありません。
重要情報は、
隠しシートで隠すのではなく、
そもそも配布ブックに含めない設計が必要です。
隠すだけでなく保護も考える
VeryHiddenにしておけば、
通常の利用者が誤って編集する可能性は下がります。
ただし、
それだけで十分とは限りません。
実務配布では、
必要に応じて次の対策も考えます。
- 入力セルだけ色を付ける
- 触ってよいシートだけ表示する
- 設定シートはVeryHiddenにする
- 必要なセルに入力規則を付ける
- 数式セルや固定セルを保護する
- READMEやメニューに操作対象を明記する
シートを隠すことは、
あくまで対策の一部です。
利用者が迷わず、
壊しにくい構成にすることが重要です。
保守担当者向けの説明も残す
VeryHiddenを使う場合は、
保守担当者向けに説明を残した方がよいです。
例えば、
READMEや仕様メモに、
次のような情報を書いておきます。
- どのシートをHiddenにしているか
- どのシートをVeryHiddenにしているか
- そのシートの役割
- 再表示が必要な場合の方法
- 利用者が編集してはいけない理由
自分で作ったときは覚えていても、
数か月後には忘れます。
他人が保守するなら、
なおさら分かりません。
隠しシートは、
隠した理由も残しておくと安全です。
まとめ
HiddenとVeryHiddenは、
どちらもシートを非表示にする方法です。
ただし、
意味は違います。
Hiddenは、
通常の非表示です。
Excel画面上の操作で再表示できます。
VeryHiddenは、
通常操作では再表示できない非表示です。
VBAやVBEから戻す必要があります。
実務配布用Excelでは、
利用者が再表示してもよい補助シートはHidden。
利用者に触らせたくない内部処理シートや設定シートはVeryHidden。
という使い分けが無難です。
ただし、
VeryHiddenはセキュリティ対策ではありません。
パスワードやAPIキーなどの秘密情報は、
そもそもブック内に保存しないことが重要です。
隠しシートは、
秘密を守るためではなく、
誤操作防止と画面整理のために使う。
この考え方で使うと、
実務配布用Excelツールの事故を減らせます。
関連記事
- Excel VBAで設定値はコード直書きか、設定シート管理か
- Excelの名前定義は便利なのか、それとも事故の元なのか
- Excelの入力規則とVBAチェックはどっちで制御すべきか
維持DXノートについて
維持DXノートでは、
建設コンサル実務で使うExcel/VBAや、
橋梁点検調書作成支援ツールの開発メモを公開しています。
Excel作業の自動化や、
帳票作成の手間を減らす考え方を、
実務目線で整理しています。
関連する無料Excelツール
維持DXでは、
橋梁点検・維持管理業務向けのExcel VBAツールを無料公開しています。
- 橋梁点検調書の作成支援ツール
- 評価結果一覧作成ツール
- 旧様式から2024様式への移行支援ツール
- 成果整合確認ツール
いずれも、
実務で発生しやすい
- 転記作業
- 写真貼付
- 一覧作成
- 旧成果移行
- 整合確認
の負担を減らすための補助ツールです。
以下のフォームにメールアドレスを入力すると、
ダウンロードURLを自動返信メールでお送りします。
ご注意
ダウンロードURLは、入力いただいたメールアドレス宛に自動返信で送信されます。
ダウンロードしたExcelでマクロが実行できない場合は、
右クリック → プロパティ →「許可する」 をチェック後、再度開いてください。
(Windowsのセキュリティ機能により初回実行時にブロックされる場合があります)


コメント