- ベストアンサー
Excel マクロ ifステートメントでシート保護を判別するには?
こんにちは。 Excelでマクロを作成していますが、どうしても解らないので質問しました。 解る方いましたら回答よろしくお願いします。 ifステートメントで「シート保護」の有無を条件にしたいのですが、うまくいきません。 if activesheet.unprotect = true then 処理1 else 処理2 end if としていますが、「シート保護」の有無に関係なく、常に処理2となってしまいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Unprotectは「メソッド」ですねぇ。 シートまたはブックの保護を解除します。 ですから、いつも結果が同じになってしまいます。 ご質問の場合は、例えば If ActiveSheet.ProtectContents = True Then MsgBox "処理1" Else MsgBox "処理2" End If のように、ProtectContentsプロパティを判別すれば いいと思います。 他に、ProtectWindow、ProtectStructure等々関連プロパティが ありますのでヘルプで検索して検討してみてください。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
if activesheet.unprotect = true then をif ActiveSheet.ProtectContents = true then と ProtectContentsプロパティを使うのだろうと思います。 他にProtectScenarios、ProtectStracture、ProtectDrawingObjectsなどと分かれているようです。
お礼
回答ありがとうございます。 ProtectContentsプロパティにより無事動作しました。 ありがとうございました。 他に教えていただいたプロパティについても勉強してみます。
お礼
回答ありがとうございます。 ProtectContentsプロパティにより無事動作しました。 ありがとうございました。