[ VBA ] ブック・シートの保護と解除 ( Protect / Unprotect )

Pocket

エクセルでは、校閲タグでブックの保護とシートの保護を行うことができます。パスワードをつけることもできます。ここでは、これらの操作を VBA から行うサンプルを掲載しています。

スポンサーリンク

ブックの保護とシートの保護

ブックの保護とシートの保護はエクセルでは以下のダイアログで設定できます。これらの操作を VBA から行います。

ブックの保護とシートの保護

ブックの保護とシートの保護ダイアログ

ブックおよびすべてのシートをパスワードを設定して保護するサンプルになります。

Sub ブックとすべてのシートを保護する()
    Dim o As Object
    For Each o In Sheets
        ' シートを保護する
        o.Protect UserInterfaceOnly:=True, Password:="password"
    Next
    ' ブックを保護する
    ThisWorkbook.Protect Structure:=True, Password:="password"
End Sub

シートを保護するときに指定している UserInterfaceOnly ですが、True に設定すると言う意味は、シートの保護によって操作できなくなるのはユーザーインターフェース(エクセルの画面メニュー)からの操作だけにするということです。

ユーザーインターフェースではない VBA からは変更できるようになります。設定しておいたほうが何かと安心です。

ブックの保護に Structure を True にしていますが、保護対象のシート構成チェックボックスに対応しています。ウィンドウチェックボックスに対応するのは Windows パラメータです。Windows パラメータについては、利用する機会は余りないと思います(個人的な意見です)。

ブックとシートの保護を解除する

次は、パスワード付で保護されたブックとシートの保護を解除するサンプルです。

Sub ブックとすべてのシートの保護を解除する()
    Dim o   As Object
    ' ワークブックの保護を解除する
    ThisWorkbook.Unprotect Password:="password"
    For Each o In Sheets
        ' シートの保護を解除する
        o.Unprotect Password:="password"
    Next
End Sub
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *