構文
構文は以下の通りです。
' セルのロックを設定する場合
Range("セル範囲").Locked = True
' セルのロックを解除する場合
Range("セル範囲").Locked = False
' シートの保護を設定する場合
ActiveSheet.Protect
' シートの保護を解除する場合
ActiveSheet.Unprotect
Range("セル範囲").Locked = True
' セルのロックを解除する場合
Range("セル範囲").Locked = False
' シートの保護を設定する場合
ActiveSheet.Protect
' シートの保護を解除する場合
ActiveSheet.Unprotect
解説
Range("セル範囲").Lockedは、ここで指定されたセル範囲のロックを設定または解除します。Trueを設定するとそのセルがロックされ、Falseを設定するとロックが解除されます。ActiveSheet.Protectは、シートの保護を有効にします。これを行うと、ロックされたセルは編集できなくなります。ActiveSheet.Unprotectは、シートの保護を解除します。これにより、ロックされたセルでも編集が可能になります。
プログラミング例
具体的なプログラミング例を紹介します。
例1: 特定のセルをロックする
Sub セルをロックする()
' B2からD4までのセルをロックする
Range("B2:D4").Locked = True
' シートを保護する
ActiveSheet.Protect
End Sub
' B2からD4までのセルをロックする
Range("B2:D4").Locked = True
' シートを保護する
ActiveSheet.Protect
End Sub
上記のプログラムは、セル範囲B2:D4のロックを設定し、シートを保護します。これにより、この範囲内のセルは編集できなくなります。
例2: 特定のセルのロックを解除する
Sub セルのロックを解除する()
' B2からD4までのセルのロックを解除する
Range("B2:D4").Locked = False
' シートの保護を解除する
ActiveSheet.Unprotect
End Sub
' B2からD4までのセルのロックを解除する
Range("B2:D4").Locked = False
' シートの保護を解除する
ActiveSheet.Unprotect
End Sub
上記のプログラムは、B2:D4のセルのロックを解除し、シート保護も解除します。これにより、この範囲内のセルは再び編集可能になります。
まとめ
セルのロックとシート保護は、ExcelのVBAで重要な機能です。ロックを設定することで、特定のセルが編集されないようにし、シート全体を保護することができます。また、必要に応じてロックの解除とシート保護の解除を行うことも可能です。