- Home ›
 - Excel VBA入門 ›
 - ワークシートの操作
 
シートの保護を解除
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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。