シートのVisibleプロパティにxlSheetVeryHiddenを設定すると、一般ユーザは右クリックでシートを再表示できなくなります。
設定方法には、「VBAによる方法」と「手動(デザイナ)による方法」の2つがあります。
VBAでVisibleにxlSheetVeryHiddenを設定
VBAで、対象シートのVisibleプロパティにxlSheetVeryHiddenを設定します。
コード
1 2 3 4 |
'シートSheet1を非表示にする(右クリック再表示不可) Worksheets("Sheet1").Visible = xlSheetVeryHidden |
解説
Sheet1のVisibleプロパティに、xlSheetVeryHiddenしているので、Sheet1が非表示になります。
この後、一般ユーザはシートタブを右クリックしても、Sheet1を再表示することはできません。
プロパティ
Visibleに設定可能な値は、次のようになります。
xlSheetVisible | 表示 |
---|---|
xlSheetHidden | 非表示(右クリック再表示可) |
xlSheetVeryHidden | 非表示(右クリック再表示不可) |
ある程度プログラムをしたことがある人だと、visibleプロパティと言えば、表示(True)、非表示(False)の2つの値を設定するイメージがあると思います。
でもエクセルのシートでは、非表示に「ユーザが再表示できる非表示」と「ユーザが再表示できない非表示」の2つあります。
実際の実行後
Sheet1のみxlSheetVeryHidden(再表示不可の非表示)を設定している時は、「再表示」自体が選べなくなっています。
Sheet1以外にxlSheetHidden(再表示可の非表示)シートがある場合は、「再表示」は選べますが、その後のシート選択画面にはSheet1は表示されません。
手動でVisibleにxlSheetVeryHiddenを設定
プログラム実行前から非表示にすることがわかっていれば、プロパティウインドウで非表示にできます。
1.非表示にするシートを選ぶ
左上のプロジェクトウインドウで、非表示にするシートをクリックします。
すると、選択したシートが反転表示されます。
2.VisibleプロパティにxlSheetVeryHiddenを設定
左下のプロパティウインドウで、VisibleプロパティにxlSheetVeryHiddenを設定します。
設定後は、VBAで非表示した時と同じように、ユーザは非表示シートの再表示ができなくなっています。
今回の非表示設定では、右クリックでは再表示できなくなります。そのため、非表示にしたシートを再表示したい時は、VisibleプロパティにxlSheetVisibleを設定します。