◆◆MS-Excel2000スキルアップ講座/VBA編◆◆

ワークシートが保護されているかどうかを判別する方法
Range オブジェクトには Locked プロパティがあり、値の設定も取得も可能なので「保護する」という動作も「保護されている」という状況判断もできるのですが、Sheet オブジェクトの場合、Protect/Unprotect メソッドなので「保護する」「保護を解除する」という動作しかできません。「現在アクティブなワークシートが保護されているかどうか」を判別する方法を考えているのですが、案が浮かびません。
ワークシートオブジェクトには以下のプロパティがあります。

ProtectDrawingObjects -> 描画オブジェクトの保護の状態
ProtectContents -> セルの保護の状態
ProtectScenarios -> シナリオの保護の状態

いづれも、
True -> 保護
False -> 非保護
となっています。

これらを使えば判断できます。
ただ、ProtectメソッドのUserInterfaceOnly引数の値は
取得できないようなのでVBAからセルの内容を変更するときは
常にこの引数の値をTrueにして再度Protectする必要があるかもしれません。