【エクセル】シート保護の実用的な使い方

他の人に使ってもらう様式をエクセルで作る場合、数式や書式が壊れないように「シートの保護」をかけることが多いです。

ところが、何も考えずにシート保護をかけると、制約が強すぎてシートが使いにくくなってしまいます

そこで、この記事では、

  • シート保護をかけると、どのような制約が生じるのか
  • シート保護と操作性のバランスを取るには、どのような設定がいいか

を考えてみます。


説明に使うフォーマット

今回、サンプルで紹介したいのは、次のようなデータを入力するシートです。

この表に、シート保護をかけて、シートが壊れにくいように、かつ、使いやすいような設定をしていこうと思います。

シート保護の基本

シート保護設定は、次の2つの設定を組み合わせて行います。

1. 保護するセルの選択

最初に、セルごとに「保護するかどうか」の設定をします。

対象セルで右クリック→「セルの書式設定」から、「保護」タブを選びます。
そして「ロック」の欄にチェックを入れることで、そのセルに保護がかけられます。

なお、「セルのロック」は、現段階では有効になっていません。

次に説明する「シート保護」の操作をした後で、はじめて有効になることに注意してください。

2. シート保護時の設定

次の設定は、シート保護をするときの設定です。

画面上部のメニュー(リボン)から、「校閲」→「シートの保護」を選択すると、次のような画面が表示されます。

ここで、「シートとロックされたセルの内容を保護する」をチェックすることでシート保護がかけられます。

また、その下には「このシートのすべてのユーザーに許可する操作」を設定するチェックボックスがあります。

「シート保護」をするときには、「このシートのすべてのユーザーに許可する操作」をどう設定するかが重要です。

「このシートのすべてのユーザに許可する操作」の設定

その名のとおり、どの欄にチェックを入れるかで、ユーザに許可する操作を変えられます。

少し前に説明したセルのロックでは、セルの値を変更できるかどうかの設定しかできませんでした。

一方で、「このシートのすべてのユーザに許可する操作」の設定では、「セルの値の変更」以外の操作について許可・不許可の設定をすることになります。

 

よく使う項目の概略を説明します。

セルのロックに「関連した」設定
項目 内容
ロックされたセル範囲の選択 チェックをはずすと、ロックされたセルを選択できなくなります。

単にセルが選択できなくなるだけでなく、通常、セルを選択した後に行う「すべての操作」ができなくなる、というところが重要です。

(セルをロックした場合の挙動例)
例1:
セルをロックすると、セルが選択できないので「セルの書式設定」もできなくなります

例2:
ある行のセルすべてをロックすると、その行を選択できなくなるため「行の挿入・削除」の操作ができなくなります

ロックされていないセル範囲の選択 「ロックされていないセル」を選択できなくします。

通常、「ロックされていないセル」は選択できないと困るため、この欄のチェックは入れておきましょう

   
セルのロックと「無関係」の設定
項目 内容
セルの書式設定 セルの書式を変更できます
列の書式設定 列幅などを変更できます
行の書式設定 行の高さなどを変更できます
列の挿入 列が挿入できます
行の挿入 行が挿入できます
列の削除 列を削除できます
行の削除 行を削除できます
並べ替え 並べ替え機能が使えます
オートフィルターの使用 オートフィルターが使えます

上記設定のうち、2つめの表(=《セルのロックと「無関係」の設定》という表題の表)の設定は、ロックしていないセルにも適用されることに注意してください。

たとえば、「行の挿入」のチェックをはずすと、セルのロックがされている・されていないとは無関係に、すべてのセルで「行の挿入」ができなくなります

実際にシート保護を設定する

それでは、実際にシート保護を設定してみます。

シート保護を設定したエクセルシートは、下記からダウンロードできますので、実際の操作感を試してみてください。

シート保護サンプルファイルをダウンロードする

このファイルには、シート名「1」から「5」まで、計5つのシートが入っています。

シート名は、下記のタイトル番号と合わせていますので、実際にシートを操作しながら、下記解説をご覧ください。

このファイルにはマクロが入っていますのでご注意ください。

なお、「1」~「4」はマクロを使っていませんので、マクロを無効化しても試して頂けます。

シート1. 一番シンプルな設定

まずは、一番シンプルに、次のようにシート保護をかけてみます。

セルのロック

10行目(タイトル行)と、それより上の行のセルに「ロックをかける」

このシートのすべてのユーザに許可する操作

表が壊れるリスクを最小限にするため、行の挿入・削除も禁止する設定にします。

  • 「ロックされたセル範囲の選択」の「チェックをはずす」
  • 列挿入・削除は禁止
  • 行挿入・削除も禁止

この設定では、表が壊れるリスクはほとんどありません。

ただし、すべての行で、行の挿入・削除を禁止しているため、非常に使いづらくなってしまいました。

シート2. 行挿入・削除を許可する

上記設定では、あまりに使いにくいので、少し設定を変えます。

ロックするセルの設定は全く同じです。
一方で、「このシートのすべてのユーザーに許可する操作」のほうは、行の挿入・削除を許可するように変更しました。

これで、随分、表の使い勝手がよくなります。

1行目~10行目までの行挿入・削除をしたら表が壊れないか?

行の挿入・削除を許可してしまうと、表が壊れてしまわないか不安ですが、今回のケースでは、ほとんどの場合、表が壊れる心配はありません。

なぜなら、現状では、1行目~10行目までは「セルのロック」のせいで、セルが選択できないからです。。

1行目~10行目を選択することができないので、行の挿入・削除機能を許可しても1行目~10行目に行の挿入・削除をすることはできないのです

このように、「行の挿入・削除は許可する」代わりに、

  • 行の挿入をさせたくない行の「全セル」に「セルのロック」をかけて
  • 「このシートのすべてのユーザに許可する操作」の設定で「ロックされたセル範囲の選択」のチェックをはずす

ことで、特定の行だけ、行の挿入・削除を防ぐことができます。

Ctrl+HomeCtrlなどのショートカットキーが使えない

ただし、この状態でも、まだ、使い勝手はあまりよくありません。

実は、この表の状態では、Ctrl+HomeCtrlのショートカットキーが使えません。

たとえば、F15セルを選択した状態で、Ctrl+HomeCtrlを押しても、まったく反応しません。

なぜ、反応しないかというと、これらのショートカットキーで移動する移動先のセルが、ロックされていて選択できないからです。

シート保護を解除すると、それぞれのショートカットキーを押すと、下記セルに移動します。

Ctrl+Home A1セル
Ctrl+ F10セル

ところが、シート保護がされていると、A1セル、F10セルともにロックがかかっているため、移動できないのです。

シート3. ウィンドウ枠を固定する

そこで、少し工夫をしていきます。

まず「Ctrl+Home」が使えるように表を改良します。

実は、「CtrlHome」は、ウィンドウ枠の固定をしている場合には、その固定しているセルに移動するという性質があります。

そこで、A11セルでウィンドウ枠を固定します。

すると、「Ctrl+Home」を押したときに、A11セルに移動するようになります。

※ウィンドウ枠を固定するとCtrl+Homeの飛び先が変わるという情報は、@shota_Excellentさんに、教えて頂きました。ありがとうございます!

シート4. タイトル行を選択可能にする

次に、「Ctrl」も使えるようにしましょう。

そのためには、10行目を選択可能にするしかありません。

そこで、セルの書式設定から、10行目の「セルのロック」のチェックをはずして選択可能にします。

こうすることで、「Ctrl」が使えるようになりました。

表が壊れるリスクが高くなる

ただし、使いやすくなった分、表が壊れやすくなってしまいました。

というのは、10行目は列タイトルが入力されているので、10行目を編集可能にすると、列タイトルを上書き入力される可能性が出てきてしまうのです。

また、10行目で行の挿入、削除をしても、簡単にレイアウトが崩れてしまいます。

シート5. VBAでタイトル行を選択不可、次の行で行挿入不可に設定する

どうしても、このような表が壊れるのを避けたいという場合には、マクロを併用しましょう。

次のソースコードを、シートモジュールに記入してみてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'選択範囲に10行目が含まれているとき
  If Not Intersect(Target, Rows(10)) Is Nothing Then
    
'下記Select文で再度SelectionChangeイベントが発生しないようにイベント呼び出し不許可
    Application.EnableEvents = False
    
'当初の選択範囲の一番左の列の11行目を選択
    Cells(11, Target.Column).Select
    
'イベント呼び出し許可
    Application.EnableEvents = True
  End If
End Sub

10行目を選択しようとすると、上記マクロが動き、選択範囲が11行目に(強制的に)変更されます。

その結果、10行目が選択できなくなり、10行目に対する「値の書き換え」や「行の挿入・削除」もできなくなります。

操作性の良さとシートの壊れにくさのバランスを考えると、このあたりが落としどころだろうと考えています。

ファイルダウンロード

今回、サンプルとして使ったエクセルファイルです。

シート保護サンプルファイルをダウンロードする

本文を見ながら、操作してみてください。

まとめ

エクセルのシート保護の機能を使うと、思わぬところに影響が出てしまいます。

いろいろな設定を試して、シートの壊れにくさと使いやすさの、ちょうどいいバランスを探ってみてください。

また、どれが使いやすかったか、私のtwitterアカウントまで、感想を頂けると、大変ありがたいです(^^)。

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。