シートの保護を解除

Excel VBA を使ってワークシートの保護を解除する方法について解説します。

(Last modified: )

ワークシートの保護を解除する

Worksheetオブジェクトの「Unprotect」メソッドを使います。

Dim sheet1 As Worksheet

Set sheet1 = Worksheets(1)
sheet1.Unprotect Password:="pass"

保護の設定をする時にパスワードが設定されている場合には「Password」引数に保護解除のためのパスワードを設定します。

サンプルプログラム

では簡単なサンプルで試してみましょう。

まずExcelファイルのシートを保護しておきます。「ツール」メニューの中の「保護」メニューをクリックし、さらに「シートの保護」をクリックします。

シートの保護の解除

今回はパスワードを設定しておきます。テキストボックス内に今回は「pass」と入力しておきます。

シートの保護の解除

パスワードの再入力を求められますので、再度は「pass」と入力しておきます。

シートの保護の解除

これでワークシートが保護された状態になりました。ではプログラム上から保護を解除してみます。

Sub テスト()
    
    Dim sheet1 As Worksheet
    
    Set sheet1 = Worksheets("Sheet1")
    sheet1.Unprotect Password:="pass"
    
End Sub

上記マクロを実行すると次のようになります。

シートの保護の解除

見た目上は変わりありませんがセルの保護が解除されており、セルが編集できる状態となっています。

シートの保護の解除

次にパスワード付きで保護されたシートを、パスワードを指定せずに保護解除しようとした場合も確認してみます。先ほどと同じようにシートを保護してから次のマクロを実行して下さい。

Sub テスト()
    
    Dim sheet1 As Worksheet
    
    Set sheet1 = Worksheets("Sheet1")
    sheet1.Unprotect
    
End Sub

上記マクロを実行すると次のようになります。

シートの保護の解除

パスワードが必要なのに「Unprotect」メソッドの引数でパスワードを指定していないため、パスワード入力ウィンドウが表示されます。パスワードをここで入力すればシートの保護は解除できます。

-- --

Excel VBA を使ってワークシートの保護を解除する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。