【Excelマクロ】シート保護・解除を一括操作するマクロ

Excelでは、誤操作やデータ改ざんを防ぐためにシートを保護することがよくあります。

特に複数のシートで構成された帳票や業務ファイルでは、「全シートをまとめて保護したい」「編集時だけ一時的に解除したい」といったニーズが出てきます。

手動で1シートずつ操作するのは手間がかかるため、VBAで一括処理できるようにしておくと非常に便利です。

すべてのシートを一括で保護・解除するマクロ

次のコードでは、すべてのワークシートに対して「保護するマクロ」と「解除するマクロ」の2つを用意しています。パスワードも設定可能です。

保護するマクロ

Sub ProtectAllSheets()

    Dim ws As Worksheet
    Dim pw As String

    pw = "pass123" ' 任意のパスワード

    For Each ws In Worksheets
        ws.Protect Password:=pw, UserInterfaceOnly:=True
    Next ws

    MsgBox "すべてのシートを保護しました", vbInformation

End Sub

解除するマクロ

Sub UnprotectAllSheets()

    Dim ws As Worksheet
    Dim pw As String

    pw = "pass123" ' 上記と同じパスワードを設定

    For Each ws In Worksheets
        ws.Unprotect Password:=pw
    Next ws

    MsgBox "すべてのシートの保護を解除しました", vbInformation

End Sub

コードのポイント

  • UserInterfaceOnly:=True を指定することで、保護状態でもVBAによる操作は可能になります。
  • パスワードは必要に応じて変更可能です。
  • Worksheets でブック内の全シートに対応できます。

実装するメリット

このようなマクロを取り入れることで、次のようなメリットが得られます。

  • 業務ファイルの改ざんや誤操作を防止できる
  • シートごとの保護設定を自動化でき、作業ミスも防げる
  • マクロ実行で一括処理できるため、大量のシートにも対応可能
  • 編集時だけ一時的に解除 → 完了後に再保護という運用がスムーズ
  • ユーザーごとにパスワードを管理すればセキュリティ面も強化できる

業務でよく使われる帳票フォーマットや提出資料テンプレートにも応用可能です。

まとめ

シートの保護・解除は、安全性と作業効率を両立させるために欠かせない操作です。

  • 全シートを一括で保護・解除できる
  • パスワードを設定して誤操作を防止
  • VBAで簡単に管理・運用できる仕組みが作れる

特にチームや部署で共有されるExcelファイルでは、保護のルールを統一し、自動化しておくことで大きなトラブル防止になります。

ぜひマクロとして取り入れて、業務に活かしてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール