EXCEL VBA - Worksheet の保護と解除

Worksheet の保護

Worksheet を保護するには Worksheet オブジェクトの Protect メソッドを使用します。

Worksheets(1).Protect
Worksheet の保護

Worksheet を保護するときに解除用のパスワードを設定する場合は、Password 引数にパスワードを設定します。

Worksheets(1).Protect Password:="password"
Worksheet の保護

保護の対象は細かく設定できます。設定可能な項目と省略した場合のデフォルト値は、以下のように定義されています。

Worksheet の保護の定数一覧
定数デフォルト値対象
DrawingObjectsFalse描画オブジェクトを保護するには、True を指定します
ContentsTrueオブジェクトの内容を保護するには、True を指定します。ワークシートの場合、対象はロックされているセルです。
ScenariosTrueシナリオを保護するには、True を指定します。
UserInterfaceOnlyFalseTrue を指定すると、画面上からの変更は保護されますが、マクロからの変更は保護されません。この引数を省略すると、マクロからも画面上からも変更することができなくなります。
AllowFormattingCellsFalseTrue を指定すると、ユーザは保護されたワークシートのセルを書式化することができます。
AllowFormattingColumnsFalseTrue を指定すると、ユーザは保護されたワークシートの列を書式化することができます。
AllowFormattingRowsFalseTrue を指定すると、ユーザは保護されたワークシートの行を書式化することができます。
AllowInsertingColumnsFalseTrue を指定すると、ユーザは保護されたワークシートに列を挿入することができます。
AllowInsertingRowsFalseTrue を指定すると、ユーザは保護されたワークシートに行を挿入することができます。
AllowInsertingHyperlinksFalseTrue を指定すると、ユーザは保護されたワークシートにハイパーリンクを挿入することができます。
AllowDeletingColumnsFalseTrue を指定すると、ユーザは保護されたワークシートの列を削除することができ、削除される列のセルはすべてロック解除されます。
AllowDeletingRowsFalseTrue を指定すると、ユーザは保護されたワークシートの行を削除することができ、削除される行のセルはすべてロック解除されます。
AllowSortingFalseTrue を指定すると、ユーザは保護されたワークシートで並べ替えを行うことができます。並べ替え範囲内のセルは、ロックと保護が解除されている必要があります。
AllowFilteringFalseTrue を指定すると、ユーザは保護されたワークシートにフィルタを設定することができます。ユーザは、フィルタ条件を変更できますが、オートフィルタの有効と無効を切り替えることはできません。
AllowUsingPivotTablesFalseTrue を指定すると、ユーザは保護されたワークシートでピボットテーブルレポートを使用することができます。
Worksheets("Sheet1").Protect Password:="password", AllowFormattingCells:=True
Worksheet の保護

Worksheet の保護を解除

Worksheet の保護を解除するには Worksheet オブジェクトの Unprotect メソッドを使用します。

Worksheets(1).Unprotect
Worksheet の保護を解除

保護を解除するときにパスワードが設定されている場合は、Password 引数に保護解除のためのパスワードを設定します。

Worksheets(1).Unprotect Password:="password"
Worksheet の保護を解除

関連記事