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

即効テクニック

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

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

(Excel 2000)
LockedプロパティにFalseが指定されたセルでは、シートが保護されている場合でもユーザーによる変更が可能になります。変更されたくない数式が入力されているセル範囲のLockedプロパティはTrue、値を入力するセル範囲にはFalseを指定するといった具合に使用します。なお、シートが保護されていない場合は、Lockedプロパティの値は有効になりません。

 構文 Object.Locked

 設定項目    内容
 Object   Rangeオブジェクト

次のサンプルは、使用中のセルのうち、空白セルのみユーザーの入力を許可するように設定します。
●サンプル●
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プロパティの値も設定できないためです。
また、シートに保護をかけた状態でLockedプロパティにFalseを指定したセル間は、[Tab]キーで移動できます。