Excelで新たに追加するシートにも特別なシート保護を適用させたい。
VBAの知識がかなり浅いので質問や記述内容もつたないと思いますがご了承ください。
1つのワークブック内の全てのシートに対し、
シートの保護をかけつつ、グループとアウトライン設定だけは有効にしたいため、
ThisWorkbook内に以下のように記述しました。
Private Sub Workbook_Open()
Dim x As Worksheet
For Each x In ThisWorkbook.Sheets
x.EnableOutlining = True
x.Protect Password:="xxxxxxxx", UserInterfaceonly:=True
Next
End Sub
これで既存のワークシートに対しては希望の動きをしましたが、
シートをコピー・複製して増やしていくため、
新たにコピーして追加されたシートに対しては機能しません。
追加したシートにもこの特別な保護が有効になるようにするには、どうしたらよいのでしょうか。
ご教授いただけるとうれしいです。
よろしくお願いいたします。
ThisWorkbook内に以下の様に記述して下さい
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.EnableOutlining = True
Sh.Protect Password:="xxxxxxxx", UserInterfaceonly:=True
End Sub
お礼
さっそくの回答ありがとうございます。 ThisWorkbook内に上記の記述を加えてみましたがなぜかうまく機能しませんでした。 そこでkyboさんのを参考に(かなり素人的な発想ですが)、 _NewSheetを_SheetActivateに変えてみたらとりあえず希望の動きにできました。 大変参考になりました。有難うございました。