こちらの記事はエクセルVBAをあまり知らない方でも利用できる「コピペでVBA(Excel)」としてもご活用できます。詳しくは以下の記事をご確認ください。
Contents
このマクロの解説
このコードを実行すると、アクティブなブックの全てのシートを保護(ロック)します。パスワードの設定はありません。
※パスワードありはプラスワンをご確認ください
反対の処理はこちら↓↓↓
このマクロのコード
Private Sub 全シート一括保護() Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.Protect Next s End Sub
※コードをコピーする時は、右上のアイコンをクリックしてください
このマクロを使う理由
エクセルの標準機能では、シートの保護を一括で設定できません。大量のシートを1度に保護したい時に使うと便利です。たとえば、誰かに確認してほしいファイルがあるが、編集はしないでほしい時などに便利です。
プラスワン:パスワードを設定する方法
上記のコードは、パスワードが設定されていません。パスワードを付けて保護をしたい場合は下記ように記述してください。
下記のコードでは、「p1234」がパスワードになります。
Private Sub 全シート一括保護() Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.Protect Password:="p1234" Next s End Sub
※コードをコピーする時は、右上のアイコンをクリックしてください
プラスワン:操作の一部を許可する方法
シートの保護では、一部の操作を許可する方法があります。
例えば、「AllowFiltering」というパラメータを"True"として指定すると、保護してもフィルタ機能は使えるようになります。フィルタ機能以外でも操作を許可するためのパラメータ(※下記参照)はあります。
Private Sub 全シート一括保護() Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.Protect Password:="p1234", AllowFiltering:=True Next s End Sub
※コードをコピーする時は、右上のアイコンをクリックしてください
シートの保護のパラメータ一覧
許可する操作内容 | パラメータ |
---|---|
オブジェクトの編集 | DrawingObjects |
ロックされていないセル範囲の選択 | Contents |
シナリオの編集 | Scenarios |
セルの書式設定 | AllowFormattingCells |
列の書式設定 | AllowFormattingColumns |
行の書式設定 | AllowFormattingRows |
列の挿入 | AllowInsertingColumns |
行の挿入 | AllowInsertingRows |
ハイパーリンクの挿入 | AllowInsertingHyperlinks |
列の削除 | AllowDeletingColumns |
行の削除 | AllowDeletingRows |
並べ替え | AllowSorting |
オートフィルターの使用 | AllowFiltering |
ピボットテーブル レポートを使用する | AllowUsingPivotTables |
今すぐ簡単にこの機能を使いたい方
作成するのが面倒な方やもう少し便利に使いたい方は、機能を充実させたアドインを用意してますので、こちらもご検討ください。