スポンサーリンク

シートの保護・ブックの保護

Excel VBA
スポンサーリンク
スポンサーリンク
スポンサーリンク

エクセルのシート保護・ブック保護について

Excelのフォーマットを作成して社内で共有する際に
セルに入力されている関数を編集してしまいデータが壊れてしまった!
シートの位置が変わり、VBAが正しく作動しない!

予期しないデータの編集を防ぐ機能があります
シート保護・ブック保護機能を使用して、苦労して作ったExcelを守りましょう!

シート保護とブック保護の違い

☆シートの保護
・ワークシート毎に保護の設定ができる
・セルの特定の操作をロックできる
・ロックするセル・ロックしないセルを分けることができる
・パスワードの設定が可能

☆ブックの保護
・Excelブックに対する保護
・ワークシートの編集をロックできる
 (シート名の変更・シートの追加/削除・シートの非表示/表示)
・パスワードを設定して、ブックへのアクセスを制限できる

シート保護の方法

校閲→シートの保護 を押すと以下が表示されます

OKを押すと保護できます。

「シートの保護」が「シート保護の解除」に変わりました。
パスワードの欄を空白にしていると、パスワードの入力を行うことなく保護解除することができます。

特定のセルだけ保護したい

初期設定では、シートの保護を行うと、すべてのセルがロックされます。

特定のセルをロックする場合は、一度すべてのセルに対して保護機能をOFFにします

左上(行1の上,列Aの左)をクリックまたは Ctrl + A ですべてのセルをアクティブにします。

いずれかのセルを右クリック→セルの書式設定

ロックのチェックを外します。

続いて、同様の手順でロックしたいセルの”ロック”にチェックを入れます。

これで、シートの保護を行うと、指定したセルのみロックされます。

ちなみに、”ユーザーの操作を許すセルが少ない” or ”特定のセルのみ編集を許す” 場合は
特定のセルのみロックを外せばOKです!

ユーザーの許可する内容

それぞれの項目に関しては以下のサイトをご参照ください。
保護されたワークシートで特定の範囲をロックまたはロック解除する

シート保護の初期設定では

  • ロックされたセル範囲の選択
  • ロックされていないセル範囲の選択

上から2つに☑が入っています。

私は、特別何もなければこのまま設定を行います。
その他、私がよく使う機能は上から3つです

  • ロックされたセル範囲の選択
  • ロックされていないセル範囲の選択
  • セルの書式設定

ロックされたセルの選択を妨げるとロックしてある事が一目瞭然なので、私はよく☑を外します。
ロックされていないセルの選択を妨げる必要はないので☑そのまま
セルの色や、文字色を変えたい際は、3番目の書式設定に☑を追加して

□ ロックされたセル範囲の選択
☑ ロックされていないセル範囲の選択
☑ セルの書式設定

迷ったら真似してみてください。

シート保護をVBAで操作する

引数がたくさんありますので詳しくは以下のページをご参照ください。

Worksheet.Protect メソッド (Excel)
Office VBA リファレンス トピック

構文 Worksheet.Protect

これで初期設定のシート保護と同じ状態になります。

この状態では、画面上保護され、VBAでも保護されているため、ロックされたセルの編集は出来ません。
手作業ではミスを防ぐためにセルをロックして、マクロでロックしたセルを操作する方法があります。

ユーザーの手作業では保護して、VBAから操作する

先述の引数にある UserInterfaceOnly を使用します

FalseにするとVBAでも操作できなくなります。既定値はFalseなので、省略した場合もVBAで操作できません。

一度保存して開き直した際にはマクロでも操作できない保護状態になります。
ブックを開くたびに毎回 Protect UserInterfaceOnly:=True を設定する必要があります。

ブック保護の方法

ブックの保護には2種類の方法があります。

①Excelファイルそのものにパスワードを設け、アクセスを制限する
②シートの追加・削除・名前の編集などのシート構成を阻止する

①Excelファイルにパスワードを設定しアクセスを制限する

ファイルを押す

情報→ブックの保護

パスワードを使用して暗号化(E)を押して任意のパスワードを設定します。
一度設定すると、設定を解除するまでブックを開く際にパスワードが必要となります。
パスワードを忘れてしまうと開く術が無くなるのでご注意ください。

これはExcelファイルそのものにパスワードを設け、アクセスを制限する方法なので、VBAでの操作はありません。

②シート構成を保護する

シートの構成を変更しないように保護します。
保護される内容は

  • シートの追加
  • シートの削除
  • シートの複製
  • シート名の変更
  • シートの移動
  • シートの非表示/再表示

VBAでシートの順番や名前を指定している際の誤作動防止に最適です。

校閲→ブックの保護

パスワードを設定してOK
パスワードを空白にしておくと解除する際にパスワードの入力を必要としません。

ブック保護をVBAで操作する(シート構成の保護)

以上です。

詳しくは以下のページをご参照下さい。

Workbook.Protect メソッド (Excel)
Office VBA リファレンス トピック

保護の解除

最後に保護の解除方法ですが、画面上で手動にて行うには、保護する方法と同じです。
保護中であれば、保護するボタンが解除するボタンに変わっています。

VBAで操作する場合 Unprotect を使用します。

コメント

タイトルとURLをコピーしました