
こちらの記事はエクセル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 |
今すぐ簡単にこの機能を使いたい方
作成するのが面倒な方やもう少し便利に使いたい方は、機能を充実させたアドインを用意してますので、こちらもご検討ください。


