今回はExcelブックの保護、解除を設定する方法をご説明します。
ブックの保護はシートの名前の変更や移動、削除、表示、非表示などそのブックの構成を変更できないようにします。
ブックの保護、解除には「Protectメソッド」と「Unprotectメソッド」を使用します。
保護にはパスワード付きもあり、パスワード付きは解除時にパスワードが必要になります。
保護と解除に併せてパスワードの対応もそれぞれ順番にご説明します。
シートの保護、解除の方法については「シートの保護、解除を設定する」をご覧ください。
1.ブックの保護の使い方
ブックを保護するには「Protectメソッド」を使用します。
記述方法は次のようになります。
引数は全て省略可能で任意となります。
Protect (Password, Structure, Windows)
引数一覧
引数 | 説明 | 既定値 |
Password | 255文字以内で保護、解除するパスワードを指定します。 大文字、小文字、全角、半角は区別されます。 省略した場合は、パスワードなしで保護解除ができます。 | – |
Structure | Trueを指定するとブックのシートの移動・削除・追加等を保護します。 | False |
Windows | ブックのウインドウ状態を保護します。 | True |
2.ブックの保護のサンプルコード
基本的なコード
Sub Sample1()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Protect
End Sub
ブックを保護するとシートの移動や削除等の編集ができなくなります。
ブックの保護がされていると次の様に操作ができなくなります。
パスワード付きの保護のコード
Sub Sample2()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Protect Password:="1111"
End Sub
パスワード付きでブックを保護した場合、解除時にパスワードを求められます。
3.ブックの保護の解除方法
ブックの保護を解除するには「Unprotectメソッド」を使用します。
ブックの保護を解除する方法は、引数も少なく保護するより単純です。
記述方法は次のようになります。
引数のパスワードは省略可能で任意となります。
Unprotect(Password)
ブックの保護がされていないブックを解除しようとした場合は何も起こりません。
引数Passwordは省略可能ですが、パスワード付きのブックを解除しようとした場合に省略するとパスワードを求めるダイアログが表示されます。
また、注意点としてブックがパスワード付きの保護がされている場合に、パスワードを間違うとエラーとなります。
また、ブックの保護は見た目だけではわかりませんので、保護されているか判定してから解除するなどの工夫をするとエラーを回避出来ます。
ブックが保護されているか判定するには「ProtectWindows」を使用します。
4.ブックの保護を解除するサンプルコード
基本的なコード
Sub Sample3()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Unprotect
End Sub
パスワード付き保護の解除するコード
ちなみにパスワードのない保護にパスワードを指定したコードで解除しても、エラーにならずに解除できます。
Sub Sample4()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Unprotect Password:="1111"
End Sub
ブックの保護がされているか判定して解除するコード
ブックが保護されているか判定するには「ProtectWindows」を使用します。
Sub Sample5()
Dim wb As Workbook
Set wb = ThisWorkbook
If wb.ProtectWindows = True Then
wb.Unprotect Password:="1111"
Else
Exit Sub
End If
End Sub