シートの保護
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"
関連・類似ページ
ブックの共有化ブックの保存
警告や確認メッセージを非表示にする