教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックを保護(Protect)又は保護解除(UnProtect)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

ブックを保護する場合
Workbook.Protect Password:=パスワード

解説

Workbook.Protectは、対象のブックを保護するメソッドです。パスワードを指定することで、保護をかける際にパスワードが必要になります。

ブックを保護解除する場合
Workbook.Unprotect Password:=パスワード

解説

Workbook.Unprotectは、ブックの保護を解除するメソッドです。保護されたブックを操作する際には、保護を解除する必要があります。

使い方

ProtectとUnProtectの使い方について具体的に説明します。

・ブックの保護

Sub ProtectWorkbook()
    ' ブックの保護
    ThisWorkbook.Protect Password:="password", Structure:=True, Windows:=True
End Sub

この例では、ThisWorkbook.Protectの後にPassword、Structure、Windowsのパラメータを指定しています。Passwordには任意のパスワードを指定することができますが、省略することも可能です。StructureとWindowsはTrueまたはFalseの値を設定することで、保護する範囲を選択します。

・ブックの保護解除

Private Sub UnprotectButton_Click()
    Dim password As String
    password = InputBox("パスワードを入力してください:")
    If password <> "" Then
        ThisWorkbook.Unprotect password
        MsgBox "ブックの保護が解除されました。"
    End If
End Sub

この例では、UnprotectButton_Clickサブルーチンがボタンのクリックイベントと関連付けられています。ブックの保護を解除するために、ユーザーにパスワードの入力を求めるためにInputBox関数を使用しています。ユーザーがパスワードを入力し、入力されたパスワードが空ではない場合に、ThisWorkbook.Unprotectメソッドを使用してブックの保護を解除します。解除が成功した場合、メッセージボックスが表示され、ユーザーに解除されたことが通知されます。

プログラミング例

具体的なプログラミング例を示します。

ブックの保護

ボタンがクリックされた時にブックを保護するコードが実行されます。

Private Sub ProtectButton_Click()
    ThisWorkbook.Protect Password:="password", Structure:=True, Windows:=True
    MsgBox "ブックが保護されました。"
End Sub

この例では、ThisWorkbook.Protectの後にPassword、Structure、Windowsのパラメータを指定しています。Passwordには任意のパスワードを指定することができますが、省略することも可能です。StructureとWindowsはTrueまたはFalseの値を設定することで、保護する範囲を選択します。

ブックの保護解除

ボタンがクリックされた時にブックの保護を解除するコードが実行されます。

Private Sub UnprotectButton_Click()
    Dim password As String
    password = InputBox("パスワードを入力してください:")
    If password <> "" Then
        ThisWorkbook.Unprotect password
        MsgBox "ブックの保護が解除されました。"
    End If
End Sub

この例では、UnprotectButton_Clickサブルーチンがボタンのクリックイベントと関連付けられています。ユーザーはダイアログボックスにパスワードを入力し、パスワードが空ではない場合にブックの保護が解除されます。

まとめ

Protectメソッドを使用してブックを保護し、Unprotectメソッドを使用してブックの保護を解除することができます。ブックの保護と解除をマスターすることで、データの安全性を高め、効果的なデータ管理を行うことができます。是非、この記事を参考にして、ExcelVBAのブックの保護と解除に取り組んでみてください。