教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでセルのロックを設定/解除する方法

構文

構文は以下の通りです。

' セルのロックを設定する場合
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のロックを設定し、シートを保護します。これにより、この範囲内のセルは編集できなくなります。

例2: 特定のセルのロックを解除する

Sub セルのロックを解除する()
    ' B2からD4までのセルのロックを解除する
    Range("B2:D4").Locked = False
    ' シートの保護を解除する
    ActiveSheet.Unprotect
End Sub

上記のプログラムは、B2:D4のセルのロックを解除し、シート保護も解除します。これにより、この範囲内のセルは再び編集可能になります。

まとめ

セルのロックとシート保護は、ExcelのVBAで重要な機能です。ロックを設定することで、特定のセルが編集されないようにし、シート全体を保護することができます。また、必要に応じてロックの解除とシート保護の解除を行うことも可能です。