シートの表示と非表示を切り替える方法
今回の目標
「シートの表示・非表示を切り替えたい!」や「設定データを隠し持つことはできないの?」と疑問を持ったあなたへ。
この記事では、Visibleプロパティを理解して、3つの定数を使い分けられるようになることが目標です。
シートの表示・非表示の切り替えについて丁寧に解説します!
目標リスト
- シートオブジェクトの Visible プロパティを知る
- シートの表示・非表示を切り替えられるようになる
- 完全非表示(xlSheetVeryHidden)を理解する
シートの表示と非表示について
Worksheet.Visible プロパティ について
Worksheet オブジェクトの Visible プロパティに定数を代入することによって、シートの表示・非表示を切り替えられます。
定数一覧
Worksheet.Visible プロパティで使用する定数です。
定数 | 値 | 説明 |
---|---|---|
xlSheetVisible | -1 | シートを表示する |
xlSheetHidden | 0 | シートを非表示する |
xlSheetVeryHidden | 2 | シートを完全に非表示する |
プロパティをTrue/Falseで設定する
VBAでは、True を数値化すると -1、False は 0 のため、
「Worksheet.Visible = True」と「Worksheet.Visible = xlSheetVisible」は同じ結果になります。
同様に、「Worksheet.Visible = False」と「Worksheet.Visible = xlSheetHidden」と同じ結果になります。
なお、「VeryHidden」を指定したい場合は、定数を指定する必要があります。
xlSheetVeryHiddenについて
シートを完全に非表示にします。
「通常の非表示(xlSheetHidden)」と違い、Excelの画面から[シート見出しを右クリック → 再表示]では再表示できません。
再表示するには、VBAマクロ または VBE で、Visible プロパティを変更する必要があります。
なお、「非表示(xlSheetHidden)」の状態から、プロパティを『xlSheetVeryHidden』に変更すると、画面の見た目は変わりませんが、Excel画面からの再表示が出来なくなります。
見かけ上、存在しないように扱われますが、データは保持しているため、入力規則等の触られたくない重要な設定データを隠して保存する場合に使用されます。
xlSheetVeryHidden で、非表示にしたサンプル画像です。
シートを表示する(xlSheetVisible)
非表示のシートオブジェクトの Visible プロパティに、xlSheetVisible または True を代入すると、シートを表示させることが出来ます。
サンプルコード
Sub SampleVisible1()
'シート「Sheet2」を表示する
Worksheets("Sheet2").Visible = xlSheetVisible
End Sub
※ Sheet2が非表示の場合、表示されます。
Sheet2が存在しない場合、実行時エラーになります。
シートを非表示にする(xlSheetHidden)
シートオブジェクトの Visible プロパティに、xlSheetHidden または False を代入すると、シートを非表示にすることが出来ます。
この方法でシートを非表示にした場合、Excelの画面から[シート見出しを右クリック → 再表示]で、シートを表示することが出来ます。
なお、対象のシートが「xlSheetVeryHidden」だった場合、通常の非表示に変更されます(ユーザー操作で再表示可能)。
サンプルコード
Sub SampleVisible2()
'シート「Sheet2」を通常の非表示にする
Worksheets("Sheet2").Visible = xlSheetHidden
End Sub
Sheet2が非表示になります。
※ Sheet2が存在しない場合、実行時エラーになります。
シートを完全に非表示にする(xlSheetVeryHidden)
シートオブジェクトの Visible プロパティに、xlSheetVeryHidden を代入すると、シートを完全に非表示にすることが出来ます。
この方法でシートを非表示にした場合、Excelの画面から[シート見出しを右クリック → 再表示]で、シートを表示することが出来ません。
Visible プロパティに、xlSheetVisible または True を代入することで、シートを表示させることが出来ます。
サンプルコード
Sub SampleVisible3()
'シート「Sheet2」を完全に非表示にする(ユーザー操作では再表示不可)
' ※Excelの画面からは再表示できず、マクロやVBEから再表示可能
Worksheets("Sheet2").Visible = xlSheetVeryHidden
End Sub
Sheet2を完全に非表示にします。
※ Sheet2が存在しない場合、実行時エラーになります。
プロパティのまとめ
Visible プロパティ に代入したときの処理について、まとめました。
定数 | 値 | 状態 | ユーザーが再表示 | マクロで再表示 |
---|---|---|---|---|
xlSheetVisible | -1 | 表示する | - | - |
xlSheetHidden | 0 | 非表示にする | 可能 | 可能 |
xlSheetVeryHidden | 2 | 完全に非表示にする | 不可 | 可能 |