短めのコードで特定のセル範囲を編集不可に

先日、このようなご質問をいただいた。

短めのコードで特定のセル範囲を編集不可にすることは可能でしょうか?

そこで、色々と考えてみた。
f:id:Infoment:20210604223225p:plain

今回は、こんな作戦を立ててみた。

  1. ワークシートのSelectionChangeイベントを用いる。
  2. 編集不可の範囲を変数に格納しておく。
  3. 選択した範囲に上記範囲が含まれるなら、プロテクトを掛ける。
  4. そうでないなら、プロテクトを解除する。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim 保護範囲 As Range
    Set 保護範囲 = Range("B2")
    
        If Intersect(保護範囲, Target) Is Nothing Then
            Me.Unprotect
        Else
            Me.Protect
        End If
End Sub

それでは、早速確認してみよう。今回は解り易さのため、B2に色を付けてある。
f:id:Infoment:20210604224134g:plain

今は、これが精一杯。

参考まで。