• ベストアンサー

Excel マクロ ifステートメントでシート保護を判別するには?

こんにちは。 Excelでマクロを作成していますが、どうしても解らないので質問しました。 解る方いましたら回答よろしくお願いします。 ifステートメントで「シート保護」の有無を条件にしたいのですが、うまくいきません。  if activesheet.unprotect = true then   処理1  else   処理2  end if としていますが、「シート保護」の有無に関係なく、常に処理2となってしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#240783
noname#240783
回答No.1

Unprotectは「メソッド」ですねぇ。 シートまたはブックの保護を解除します。 ですから、いつも結果が同じになってしまいます。 ご質問の場合は、例えば If ActiveSheet.ProtectContents = True Then MsgBox "処理1" Else MsgBox "処理2" End If のように、ProtectContentsプロパティを判別すれば いいと思います。 他に、ProtectWindow、ProtectStructure等々関連プロパティが ありますのでヘルプで検索して検討してみてください。

bear-fruit
質問者

お礼

回答ありがとうございます。 ProtectContentsプロパティにより無事動作しました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

if activesheet.unprotect = true then をif ActiveSheet.ProtectContents = true then と ProtectContentsプロパティを使うのだろうと思います。 他にProtectScenarios、ProtectStracture、ProtectDrawingObjectsなどと分かれているようです。

bear-fruit
質問者

お礼

回答ありがとうございます。 ProtectContentsプロパティにより無事動作しました。 ありがとうございました。 他に教えていただいたプロパティについても勉強してみます。