すべてのシートを一括で保護(ロック)する方法 – コピペでVBA(Excel)

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

「コピペでVBA(Excel)」の概要と使い方
「コピペでVBA(Excel)」の概要と使い方
「コピペでVBA(Excel)」とは? エクセルVBAの知識がない人でもコードをコピペするだけで便利な処理が使えることを目指しています。汎用性のありそうなコードを順次公開
2018-02-12 14:00
はてブ

このマクロの解説

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

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

すべてのシートを一括で保護解除する方法 – コピペでVBA(Excel)
すべてのシートを一括で保護解除する方法 – コピペでVBA(Excel)
こちらの記事はエクセルVBAをあまり知らない方でも利用できる「コピペでVBA(Excel)」としてもご活用できます。詳しくは以下の記事をご確認ください。 このマクロの
2018-02-12 15:00
はてブ

このマクロのコード

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
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする