目次
経緯
VBAを使って、特定のセルだけをロックしたいと考え、
今回、セルのロックおよびロック解除の方法について学びました。
解決方法:Lockedプロパティを使う
Excel VBAでは、セルやシートに対して**Locked
プロパティ**を設定することで、
ロック(編集禁止)やロック解除(編集可能)をコントロールすることができます。
セルのロックを解除する方法
まず、シート内すべてのセルのロックを一旦解除するには、以下のように記述します。
ActiveSheet.Cells.Locked = False
ActiveSheet
:現在アクティブなシートCells
:シート全体のセルを対象Locked = False
:ロックを解除(編集可能にする)
特定のセルをロックする方法
次に、特定のセル(例:A1セル)だけをロックするには、次のように記述します。
ActiveSheet.Range("A1").Locked = True
Range("A1")
:対象のセルを指定Locked = True
:ロック(編集不可)に設定する
これにより、A1セルのみが編集不可となり、その他のセルは編集可能な状態に設定されます。
※なお、セルにロック設定をしても、シート自体に保護がかかっていないとロックは有効になりません。
最終的には、以下のようにシート保護も行う必要があります。
ActiveSheet.Protect
この一行を追加することで、ロック設定が反映されます。
まとめ
VBAでセルをロック・解除するには、
- シート全体のロックを解除する →
ActiveSheet.Cells.Locked = False
- 特定のセルをロックする →
ActiveSheet.Range("セル範囲").Locked = True
- ロック設定を有効にするには →
ActiveSheet.Protect
でシート保護
という流れで実装できます。
これらを組み合わせることで、自由にロック対象を制御することが可能になります。
ここまでお読みいただき、誠にありがとうございました。