・シートの保護を解除
・特定セル以外のセルのロックを解除(エクセルのセルはデフォルトでロックにチェックが入ってる)
・特定セルのロック
・シートの保護
シートを保護するとロックにチェックが入ってるセルだけが、書込み禁止になる。
Dim RRf As Range
Dim RRt As Range
Set RRt = Worksheets(“申込書”).Range(“A1:AB50”)
Set RRf = Worksheets(“申込書”).Range(“T3:Y4,B21:Y36,P39,W40,B46,N47,P43,U44”)
Worksheets(“申込書”).Unprotect
Locker RRt, True
Locker RRf, False
Worksheets(“申込書”).Protect
Private Sub Locker(Rng As Range, Boo As Boolean)
Dim range As Range
For Each range In Rng
If range.MergeCells Then
range.MergeArea.Locked = Boo
Else
range.Locked = Boo
End If
Next
End Sub
複数シートを使っていて、セルに結合セルがある場合は、RANGEのSET時にシートを指定することと、range.MergeCellsで結合セルであるかどうかをチェックし、結合セルである場合は、range.MergeAreaでマージエリアをロックしないと
「RangeクラスのLockedプロパティを設定できません。」
というエラーが出るので注意。