LockedプロパティにFalseが指定されたセルでは、シートが保護されている場合でもユーザーによる変更が可能になります。変更されたくない数式が入力されているセル範囲のLockedプロパティはTrue、値を入力するセル範囲にはFalseを指定するといったように使用します。なお、シートが保護されていない場合は、Lockedプロパティの値は有効なりません。
次のサンプルは、使用中のセルのうち、空白セルのみユーザーの入力を許可します。
●サンプル●
Sub LockedSamp1()
ActiveSheet.Unprotect password:="abcd" '----シートの保護解除
Cells.Locked = True '----(1)
ActiveSheet.UsedRange.SpecialCells( _
Type:=xlCellTypeBlanks).Locked = False '----(2)
ActiveSheet.Protect password:="abcd" '----シートの保護
End Sub
●解説●
(1)のステートメントでいったん全セルのLockedプロパティをTrueにした後、(2)のステートメントで空白セルのLockedプロパティをFalseにし、最後にシート全体の保護をかけています。最初にシート保護を解除しているのは、シートに保護がかかっている状態ではLockedプロパティの値も設定できないためです。