こちらの記事はエクセルVBAをあまり知らない方でも利用できる「コピペでVBA(Excel)」としてもご活用できます。詳しくは以下の記事をご確認ください。

このマクロの解説

このコードを実行すると、アクティブなブックの全てのシートを保護(ロック)します。パスワードの設定はありません。 ※パスワードありはプラスワンをご確認ください

反対の処理はこちら↓↓↓

このマクロのコード

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