2018年5月4日シート非表示シートは再表示を禁止するにはVBAで対応するしかないExcelでシートタブを右クリックして「非表示」を選択するとそのシートを非表示にすることができます。その場合は再表示が可能です。ところが、場合によっては非表示シートの再表示をしてほしくない場合があります。このような場合、Excelブック上では対応することが出来ません。VBA画面での設定にて対応することになります。非表示シートの再表示を禁止するには以下の手順を行います。VBA画面を開きます。F11)プロジェクトウィンドウから対象ブックの再表示を禁止したいシートを選択します。プロパティウィンドウのVisibleでxlSheetVeryHiddenを選択します。これで非表示状態となった上でExcelブック上での再表示もできなくなります。シートを右クリックしても「再表示」ダイアログには候補として表示されません。このままではVBAの知識がある人が見た場合にxlSheetVeryHidden(VBAでの非表示状態)からxlSheetVisible(表示状態)に変更されて非表示シートを見られてしまう恐れがあります。しても非表示シートを見られたくない場合は以下の対応を行います。xlsmブックの作成まず、対象のブックをxlsxファイルではなく、Excelマクロ有効ブック(xlsmファイル)として保存します。名前を付けて保存の際にファイルの種類欄から「Excelマクロ有効ブック(*.xlsm)」を選ぶことで保存できます。その際に既に作成済みだったxlsxファイルがある場合、xlsxファイルは削除して構いません。シート非表示のコードを作成その後、VBA画面で標準モジュールを追加し、以下のコードを書きます。Auto_Open関数はブックが開いたときに動作する特殊な関数です。ブックが開いた際に対象シートをxlSheetVeryHiddenにするコードを書くことで常に非表示にするようにします。2行目には非表示にしたいシートを指定します。ここではSheet2としています。3行目のようにSheets(“Sheet2”)と書いても同じ意味になります。Subなお、他のブックから開く場合は、Workbook.Openメソッドを使っただけではAuto_Open関数が処理されませんので、Workbook.OpenメソッドのあとにWorkbook.RunAutoMacrosメソッドを使います。Subもしくは、呼び出し元はWorkbook.Openメソッドを使い、標準モジュールではなくThisWorkBookにWorkbook_Open関数を書きます。Auto_Open関数と異なりWorkbook.Openメソッドから呼び出されると動作します。選択して、パスワードを設定します。パスワードを設定するとVBAの画面でシートや標準モジュールを見ようとした際にパスワードが要求されるようになります。ブックの保存あとはマクロブックを保存して終わりです。それでも欠点はあるただしこの方法にも欠点はあります。それは、Excelの設定でマクロが無効化されている場合など個別のPC環境ごとに正しく動作しないことが考えられます。Excel作業をVBAで効率化シェアお問合わせTOPへ。