Home > 即効テクニック > Excel VBA > セル操作関連のテクニック > 保護されたシートで変更可能なセルを指定する

即効テクニック

セル操作関連のテクニック

保護されたシートで変更可能なセルを指定する

(Excel 2000)
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プロパティの値も設定できないためです。