Excel

【Excel】エクセルで特定のセルの直接入力禁止・ロック(範囲指定:編集できないようにする)方法

当サイトでは記事内に広告を含みます

この記事では、エクセルで特定のセルの直接入力禁止・ロック(範囲指定:編集できないようにする)方法について解説していきます。

主な対応方法は以下です。

セルのロックとシート保護

データの入力規則を使用

VBAでセルをロックする

それではサンプルを見ていきましょう。

 

エクセルで特定・指定のセルの直接入力禁止する方法1

セルのロックとシート保護はエクセルに搭載されている機能で、セルの書式設定と校閲タブを使います。

 

特定セルを含んだシート全体を保護したいケース

どこでもいいので適当なセルを選択して、セルの書式設定を確認しましょう。

 

保護タブのロックのチェックボックスがONになっていることを確認します。

デフォルトではすべてのセルがONになっています。

 

この状態で校閲タブのシートの保護をクリックして、以下のチェックがついた状態でOKを押しましょう。

必要であればパスワードの設定をしましょう。解除の時に必要になります。

OKを押すと指定のセルを含んだシート全体が編集不可になります。

 

特定のセルだけをロック・保護したいケース

特定のセルだけを編集不可にする場合は、まずCtrl+Aを押してシートすべてを選択します。

この状態で先ほどと同様にセルの書式設定を開き、今度はロックのチェックを外します。

次にロックしたいセルだけを選択して、同じくセルの書式設定からロックにチェックを入れます。

そしてシートの保護をします。こうすることで指定したセルだけがロックできます。

 

 

エクセルで特定のセルの直接入力禁止する方法2【データの入力規則の使用で指定範囲のみ】

次はデータの入力規則を使った方法です。

データの入力規則とは特定のセルに対して1~5までとか、OKNGだけ、など指定した値しか入力できなくする設定です。

 

例えば以下の評価のセルに1~5までを許可する場合

 

 

整数を選択します。

最小値1と最大値5を設定します。

 

設定した値以外を入力しようとするとエラーになります。

これで特定・指定セルへの直接入力を禁止する設定ができました。

 

 

エクセルで特定のセルの直接入力禁止する方法3【VBA:マクロ】

ここからはVBAを使った方法なのでマクロ有効ブックにする必要があります。

まずは今開いているエクセルを「名前を付けて保存」でExcelマクロ有効ブックを選択しましょう。

この形式にすることでマクロが使えるようになります。

 

現在開いているエクセルで直接編集を禁止したいシートでAlt+F11を押してVBAエディタを開きます。

 

以下のコードを貼り付けます。


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range    'セル範囲を指定
    Set cell = Me.Range("E3:E5")
    '編集されたセルが特定のセルであれば、元の値に戻す
    If Not Application.Intersect(Target, cell) Is Nothing Then
        Application.EnableEvents = False
        Application.Undo
        MsgBox "このセルは編集できません。", vbExclamation
        Application.EnableEvents = True
    End If
End Sub

この例ではE3E5を編集不可にしました。入力してみます。

エラーメッセージが出ました。

OKを押すと元の値に戻ります。

 

 

まとめ エクセルで特定・指定のセルのロック・保護(VBA:マクロも:編集できないようにする)方法

この記事ではエクセルで特定のセルの直接入力禁止・ロック(編集できないようにする)方法について解説しました。

シートの保護やデータ入力規則、VBAを使えばあらゆる状況に対応できると思います。ぜひご活用ください。