3

パスワードなしで保護された Excel ワークシートがあります。私がやりたいのは、ユーザーがワークシートの保護を解除したというイベントをトラップして、メッセージを生成できるようにすることです (そして、しつこく!)。新しいワークブックが開かれたときなど、アプリケーションのイベント チェックをセットアップできますが、保護解除のイベント チェックはセットアップできません。
誰にもアイデアがありますか?

4

2 に答える 2

2

[ツール] → [カスタマイズ] を使用してメニューを変更することができます。保護/保護解除は、マクロを実行するように設定できます。たとえば、次のようになります。

Sub UnprotectTrap()
If ActiveSheet.ProtectContents = True Then
    MsgBox "Tut,tut!"
    ActiveSheet.Unprotect
Else
    ActiveSheet.Protect

End If
End Sub
于 2008-10-28T22:00:18.460 に答える
0

シートの保護を解除しているユーザーをトラップする方法はありませんが、シートを再保護せずにブックを保存した場合に警告することができます。

Workbook モジュールに、このコードなどを入れます

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If Sheets("MyProtectedSheet").ProtectContents = False Then
    MsgBox "The sheet 'MyProtectedSheet' should not be left unprotected. I will protect it before saving", vbInformation
    Sheets("MyProtectedSheet").Protect
  End If
End Sub
于 2008-10-28T22:35:08.637 に答える