VBA シートの保護(保護の解除)



シートの保護


VBAを使ってエクセルシートの保護をする方法とその解除方法です。
エクセル上だと[リボン]→[校閲]→[シートの保護]→・・・と同じ動作を再現します。


メソッドなど
Worksheet.Protect


サンプルコード(パスワード設定なし)
Sub hogo()
    'アクティブシートの保護
    ActiveSheet.Protect    
End Sub


実行結果イメージ


解説
例としてActiveSheetに対してシートの保護をする処理をしています。

WoekrSheet.Protectはワークシートを保護するメソッドです。
[校閲]から[シートの保護]を選択すると出てくるオプション設定する「パスワード」や「セルの選択の許可」などのパラメータはProtectの後に記述することで指定できます。



パラメータ一覧
名前 内容 既定値
Contents シートとロックされたセルの内容の保護 True/False True
Password パスワード 文字列
AllowFormattingCells セルの書式設定 True/False False
AllowFormattingColumns 列の書式設定 True/False False
AllowFormattingRows 行の書式設定 True/False False
AllowInsertingColumns 列の挿入 True/False False
AllowInsertingRows 行の挿入 True/False False
AllowInsertingHyperlinks ハイパーリンクの挿入 True/False False
AllowDeletingColumns 列の削除 True/False False
AllowDeletingRows 行の削除 True/False False
AllowSorting 並び替え True/False False
AllowFiltering オートフィルタの使用 True/False False
AllowUsingPivotTables ピボットテーブル レポートを使用する True/False False
DrawingObjects オブジェクトの編集 True/False True
Scenarios シナリオの編集 True/False True
UserInterfaceOnly 画面上からの変更保護 True/False False

Contentsの動きがいまいちよくわかりませんがFalseにするとロックしたセルも編集できました。(オブジェクトとグラフは編集不可のままっぽい)

サンプルコード(パスワード設定など)
Sub hogo()
    'アクティブシートの保護(パスワード指定、並び替え許可)
    ActiveSheet.Protect Password:="123", AllowSorting:=True
End Sub



シートの保護の解除

メソッドなど
Worksheet.Protect


サンプルコード(パスワード設定なし)
Sub hogokaijo()
    'アクティブシートの保護解除
    ActiveSheet.Unprotect
End Sub

パスワード設定がある場合は引数Passwordに指定します。
    ActiveSheet.Unprotect Password:="123"

関連・類似ページ
ブックの共有化
ブックの保存
警告や確認メッセージを非表示にする