保護しているセルは、セル選択もさせない。

ユーザーオペレーションの制限ですが、セル選択そのものも行なえないようにするサンプルです。
この機能はマクロ不要になっていました。  
保護セルのマウス選択もさせない おそらくExcel2007あたりからだと思いますが「保護しているセルは、セル選択もさせない」というのはマクロを使わなくても設定可能でした。



シート保護時の「ロックされたセル範囲の選択」はデフォルトでチェックが付いていますが、これを外してOKをクリックします。
この状態で保存させたワークブックは次回開いても保護セルは選択できません。
これは互換形式(*.xls)でも同様です。



但し、マクロからシート保護を掛ける時などではこのページの処置は必要だと思われますので、そのまま残しておきます。 このページのサンプルは「ロックされたセル範囲の選択」にチェックが付いた状態でシート保護されています。

計算式や書式の保護のため、セルをロックしてワークシートを保護するのはご理解いただけたと思います。ここではロックされているセルはマウスでの選択もできなくさせる方法をご案内します。
保護セルのマウス選択もさせない
(画像をクリックすると、このサンプルがダウンロードできます)
このサンプルでは、左(B列)の罫線で囲まれている3つのセルを除いて全セルがロックされており、Tabキーで送ると3つのセル以外には進みません。しかし、通常はマウスでこのようにロックされているセルを選択するところまでは可能です。(入力はできません)
このサンプルは、このマウスでの選択すらできなくさせます。


'***************************************************************************************************
'   保護しているセルはセル選択もさせないサンプル                    Module1(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'03/07/24(1.00)新規作成
'07/07/15(1.01)初回修正
'20/02/22(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
Option Private Module

'***************************************************************************************************
'   ■■■ ワークシート側からの呼び出し処理 ■■■
'***************************************************************************************************
'* 処理名 :SetEnableSelection
'* 機能  :保護しているセルはセル選択もさせない
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年07月24日
'* 作成者 :井上 治
'* 更新日 :2020年02月22日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Sub SetEnableSelection()
    '-----------------------------------------------------------------------------------------------
    Dim objSh As Worksheet                                          ' 現在シート
    Set objSh = ActiveSheet
    With objSh
        ' 一旦シート保護をかけ直す
        .Protect UserInterfaceOnly:=True
        ' 保護されたセルは選択不可にする
        .EnableSelection = xlUnlockedCells
        ' スクロール範囲を設定する
        .ScrollArea = "$A$1:$B$6"
    End With
End Sub

'----------------------------------------<< End of Source >>----------------------------------------



これは、実際に動かしてみて下さい。マクロの動作後ロックされたセルがマウスでも選択できなくなるのが確認できます。
シート保護を掛け直す記述がありますが、シート保護が正しく掛かっているならばこの記述は不要で、「EnableSelection = xlUnlockedCells」の1行だけで機能します。
なお、これはExcelを開いている間だけしか効力がありません。この状態で保存させても次回開いた時には従来通りセル選択はできてしまいます。毎回この状態を再現するのであればスタートアップのマクロに仕込む必要があります。



さらにこのページのサンプルでは最終行の「ScrollArea」でスクロール範囲も制限させています。