![]() |
おそらく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 >>----------------------------------------