まりふのひと

エクセル収支表の入力できる範囲を制限(保護、ロック)する

パソコン同好会のテキスト用に作った「収支表で学ぶエクセルの使い方」、

ここでは明細は500行目までの入力に対応できるようにしてある。これを超えて入力すると、実際の「残高」と、3行目の残高が一致しなくなる。
一層、「500行目を超えたら入力出来ないようにする」、更に「計算式を入力してあるセルは更新(変更)できなくする」のがいいのではないか‥‥ と、挑戦してみた。

残高の計算式の変更

事前に「残高の計算式を500行目まで入力しておく」,こうした場合の問題点の把握(例えば、常に500行目まで印刷される?)のためにも行ってみた。

§セルF5の計算式
  • 変更前:“=f4+d5-e5”
  • 変更後:“=if(and(d5="",e5=""),"",f4+d5-e5)”
    • セルD5とE5のどちらかに入力があった場合のみ計算する。

書式の変更

§C列とG列の書式

これは後から解ったことであるが、「保護」すると列の幅を変更できない。そこで、

  1. 予め、列の幅を広めにしておく。
  2. 書式を「折り返して全体を表示する」に設定しておく。
§ウィンドウ枠の固定(任意)

1〜3行目を固定した。

保護

§セルを保護する

以下の設定は、保護の範囲を決めるだけで、この設定で「保護される」訳ではない。
なお、今回は3ヶ所でなるが、3回に分けて行うことも出来る。

  1. ユーザーに操作してほしいセルのみを選択する。
      • A1(タイトルは変えられるようにする)
      • A4〜E500、G4〜G500
    • 一度に行うのであれば、名前ボックスに“a1:g1,a4:e500,g4:g500”を入力するのが簡単。
      (結合したセルも範囲で入力しないと、エラーになる)
  2. [書式]メニュー ⇒[セル]をクリックし、
  3. 【セルの書式設定】ダイアログボックスの[保護]タブで
    • 「ロック」のチェックを外す。
      • Excelの標準ではチェックが入っている。
    • 「表示しない」のチェックを外す。
  4. [OK]で閉じる。
§シートを保護する

この設定を行うことにより、上記「セルを保護する」が有効になる。

  1. [ツール]メニュー ⇒[保護]⇒[シートの保護]をクリックする。
  2. 【シートの保護】ダイアログボックスで下記設定を行い、[OK]をクリックする。
    • 「シートとロックされたセルの内容を保護する」にチェックを入れる。
    • 「シートの保護を解除するためのパスワード」
      • 入力は任意。入力後、[OK]をクリックすると、再度、パスワードの入力を求められる。
    • 「このシートの全てのユーザーに許可する操作」
      • 「ロックされていないセル範囲の選択」のみにチェックを入れる。

この操作により、「セルを保護する」で選択した範囲以外のセルはアクティブにならない。

§シートの保護を解除する
  1. [ツール]メニュー ⇒[保護]⇒[シート保護の解除]をクリックする。
  2. パスワードを設定している時は、

    【シート保護の解除】ダイアログボックスが出るので入力する。

わかったこと

  1. 初心者等に「入力してもらう」ケースでは有効な手段である。
     自分が入力していても、「ついつい変更(壊して)してしまう」ことがある場合等にも使える。
  2. 保護の設定/解除が簡単に出来るのはいいが、制約(不便なこと)が結構多い。

  3. 行の挿入が出来ない。「許可」しても出来ない。
     残高の列(F列)をロックしているたか、500行目以降はロックしているためと思われる。
  4. 行の挿入の代用1)A〜E列のセルを「切り取り → 貼り付け」を行うと、F列のセルが“#REF!”(数式エラー)となり、壊れる。
  5. 行の挿入の代用2)A〜E列のセルの「コピー → 貼り付け」は行える。
     貼り付けを新しいセルに行うと、F列のセルが“#VALUE!”となるが、収入/支出を入力すると正常に表示される。
  6. 追加入力した行に罫線を引けるように設定しておいてもロックしている列(F列)には引けない。
  7. ロックする前に(500行まで)罫線を引いておくと、当然、印刷すると罫線のみの行・ページが出来る。
     [改ページプレビュー]で、[改ページの挿入]をしておき、印刷はページ指定することで対処できる。

  8. 解除するためのパスワードを設定しておくと、[Webページとして保存]できない。
  9. Webページに載せるのであれば、[Webページとして保存]後、[シート保護の解除]を行い手を入れればいいだろう。