教えて!ExcelVBA!

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

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

ブックを保護又は保護解除するには「Protect」「UnProtect」を使います。

構文

構文は以下の通りです。

ブックの保護(Protectメソッド)
ブックオブジェクト.Protect([Password], [Structure], [Windows])

解説

・ブックオブジェクト:保護を行いたいブックのオブジェクトを指定します。
・Password:パスワード(省略可)を指定することで、解除時にパスワードが必要になります。
・Structure:ブックの構造(シートの挿入・削除、ウィンドウの移動など)を保護するかどうかを指定します。TrueまたはFalseを設定します。
・Windows:ウィンドウの変更を保護するかどうかを指定します。TrueまたはFalseを設定します。

ブックの保護解除(UnProtectメソッド)
ブックオブジェクト.Unprotect [Password]

解説

・ブックオブジェクト:解除を行いたいブックのオブジェクトを指定します。
・Password:解除するためのパスワードを指定します。

使い方

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のブックの保護と解除に取り組んでみてください。