保護されていないセルに書き込み

先日、職場の勉強会で知った、(私にとっての)変わり種からご紹介。
f:id:Infoment:20201221230211p:plain

例えば、A1~C10範囲のうち、黄色で塗り潰されたセルだけが
保護されていないとする。
f:id:Infoment:20201221230324p:plain

この「保護されていないセル」に値を入力する際に、Lockedプロパティなる
ものを教わった。
docs.microsoft.com

Range.Locked のように用いる。
保護されているならTrue、されていないならFalseとなる。

従って、例えば非保護セルに「A」という文字を入力するなら、
こんな感じになる。

Sub Test()
    Dim r As Range
        For Each r In Range("A1:C10")
            If Not r.Locked Then
                r = "非保護"
            End If
        Next
End Sub

結果は、以下のとおり。
f:id:Infoment:20201221230747p:plain

使い処は限られてくるが、例えば書式が定められていて、且つ、入力セル以外が
ガッチガチに保護されている入力シートなどで、役に立つかもしれない。

そして何よりも、保護の有無確認だけで済むという、発想の柔軟さが面白いと
思ったので、今回取り上げてみた。

参考まで。