プロが教えるわが家の防犯対策術!

WEB上でしらべたのですが、できなかったので質問します。

セルC7が無の時 セルC8~セルC11までを入力させない。
セルC7が有の時 セルC8~セルC11までを入力可能にさせる。

シート全体に



下記のコードで実行すると、

RangeクラスのLookedプロパティを設定できませんとなります。

どの箇所がだめなのかお手数ですがご教示お願いします。


Sub 無()

Range("C7") = "無"

If Range("C7") = "無" Then
Range("C8:C11").Locked = True
ActiveSheet.Protect
Else
ActiveSheet.Unprotect

Range("C8:C11").Locked = False
End If



End Sub

Sub 有()
Range("C7") = "有"
If Range("C7") = "有" Then

Range("C8:C11").Locked = False


Else
ActiveSheet.Unprotect
Range("C8:C11").Locked = True
End If


End Sub

質問者からの補足コメント

  • >>
    C8~C11セルが別のセルと結合されていませんか?


    回答ありがとうございます。
    C8~C11は結合されていませんが、

    セルA1~セルA4 が セルB1~セルB4と結合
    セルA8~セルA11が セル81~セルB11と結合しています。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/05/30 13:39

A 回答 (3件)

「Sub 無()」や「Sub 有()」のすぐ後に「ActiveSheet.Unprotect」の1行を追加してみてください。


判ると思いますが、理由は保護がかかったシートのプロパティを変更できないためです。
元々シート保護がないときはエラーが出ないと思いますよ。
    • good
    • 0
この回答へのお礼

おっしゃる通りでした。

お礼日時:2017/05/30 14:11

Sub 無()


セルC7が無の時、ActiveSheet.Protectが実行され、シート全体にロックが掛る。
それを解除するステートメントがどこにも無いから、ロックされたら最後、操作が出来なくなってしまう。
    • good
    • 0

C8~C11セルが別のセルと結合されていませんか?

この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!