【VBA】非表示のシートを右クリックで再表示できないようにする

シートのVisibleプロパティにxlSheetVeryHiddenを設定すると、一般ユーザは右クリックでシートを再表示できなくなります。

設定方法には、「VBAによる方法」と「手動(デザイナ)による方法」の2つがあります。

VBAでVisibleにxlSheetVeryHiddenを設定

VBAで、対象シートの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で非表示した時と同じように、ユーザは非表示シートの再表示ができなくなっています。

POINT
今回の非表示設定では、右クリックでは再表示できなくなります。そのため、非表示にしたシートを再表示したい時は、VisibleプロパティにxlSheetVisibleを設定します。

関連記事

タイトルとURLをコピーしました