ブックの保護は、シート上からは 「校閲– ブックの保護」から行います。
エクセルVBAでは保護のためにはProtect、解除のためにはUnprotectを使用します。
こんにちは じゅんぱ店長 (@junpa33) です。
エクセルブックは保護することが出来ます。
また、エクセルブックの保護は単にプロテクトだけでなく、パスワード付きで保護することも出来ます。
ブックを保護することによって、ブック中のシートの削除や移動、シート名変更やシートの表示変更を禁止することが出来ます。
コンテンツ
エクセルブックを保護するVBAコード

エクセルブックを保護するには「 Protectメソッド 」を、
保護を解除するには「 Unprotectメソッド 」を使用します。
ブックの保護と保護解除の基本文
ProtectとUnprotectの使い方は以下のようになります。
ワークブックオブジェクト.Protect
ワークブックオブジェクト.Unprotect
エクセルブックの「Book1.xlsm」を保護するコードです。これだけです。
Sub ブックの保護1()
Workbooks("Book1.xlsm").Protect
End Sub
保護の解除は、ProtectをUnprotectに置き換えるだけです。
Sub ブックの保護2()
Workbooks("Book1.xlsm").Unprotect
End Sub
パスワード付きのブックの保護と保護解除の基本文
パスワードを設定する場合は、引数として「Password:=パスワード」を付け加えます。
ワークブックオブジェクト.Protect Password:=パスワード
ワークブックオブジェクト.Unprotect Password:=パスワード
引数としてパスワードを設定します。パスワードは「ロック」と設定しました。
Sub ブックの保護3()
Workbooks("Book1.xlsm").Protect Password:="ロック"
End Sub
Sub ブックの保護4()
Workbooks("Book1.xlsm").Unprotect Password:="ロック"
End Sub
エクセルブックが保護されているかを確認するコード
ブックが保護されているとメッセージウインドが表示されます。
Sub ブックの保護5()
If ThisWorkbook.ProtectStructure = True Then
MsgBox "ブックは保護されています。"
End If
End Sub
ブックのパスワード付き保護と解除の実用マクロ

あらかじめパスワードを設定しておき、マクロの実行で保護・保護解除を行なえる実用VBAコードです。
保護したいエクセルブックの標準モジュールへコピペで使用できます。
Sub ブックの保護6()
'*************
Dim PassWD As Variant
PassWD = "ロック"
If ThisWorkbook.ProtectStructure = False Then
ThisWorkbook.Protect Password:=PassWD
End If
'*************
Dim Ans As Long
Dim Inp As Variant
If ThisWorkbook.ProtectStructure = True Then
Ans = MsgBox("ブックは保護されています。" & vbCrLf & _
"解除しますか?", vbYesNo + vbExclamation, "ブックの保護")
End If
If Ans = vbYes Then
Inp = Application.InputBox("パスワードを入力してください", _
Title:="PASSWORD", Type:=2)
If Inp <> PassWD Then
MsgBox "パスワードが違います。"
Exit Sub
End If
ThisWorkbook.Unprotect Password:=Inp
Else
Exit Sub
End If
End Sub
まとめ

ブックを保護することによって、シートが改変されることを保護することが出来ます。ただし、ブックそのものを削除したり、複製したりすることを防ぐことは出来ません。
また、シート内のセルについては、シートが保護されていないと、ブックの保護だけではセルの保護はされません。
シートの保護についてはこの記事を参考にしてください。

セルの保護についてはこの記事を参考にしてください。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

今回の記事はここまでです。 最後までご覧いただき有難うございました。