まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

【Excelマクロ・VBA】シートを保護(Protect)又は保護解除(UnProtect)するにはどうすればいいの?教えて!

       f:id:m_kbou:20190816121220p:plain

シートをパスワードを付けて保護又は保護解除する方法について説明します。シートを保護する事で、シートの変更を禁止する事ができます。パスワードは大文字/小文字が区別されますので、十分注意して設定する様にして下さい。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

=======================================================================

Worksheets(”[シート名]”).Protect PassWord:
                   = ”[パスワード]

Worksheets(”[シート名]”).UnProtect PassWord:
                   = ”[パスワード]
 

=======================================================================

 

[説明]:

シートをパスワードで保護するにはProtectメソッドを記述し、保護を解除するにはUnProtectメソッドを記述します[シート名]には保護又は保護解除するシート名を記述します。シート名は「”」(ダブルクォーテーション)で囲みます。また、ProtectやUnProtectメソッドの後には「PassWord:=」を記述し、保護/保護解除するための[パスワード]を記述します。パスワードは文字列を指定する必要があるため、シート名同様に「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[シート名]で記述したシートを指定したパスワードで保護又は保護解除して下さい。」との意味になります。

[記述例]:

Worksheets("sheet1").Protect Password:="12345"
Worksheets("sheet1").Unprotect Password:="12345"

 

使い方

使い方について、具体的に説明していきます。

指定したシートをパスワードを付けて保護する方法

指定したシートをパスワードを付けて保護する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Worksheets("sheet1").Protect Password:="12345"
    MsgBox "sheet1を保護しました。"
End Sub

-------------------------------------------------

内容は、「Sheet1シートをパスワード:12345(文字列)で保護設定し、最後にMsgBoxで”Sheet1を保護しました。”のメッセージを表示して下さい。」との意味になります。

[実行例]:

・”Sheet1を保護しました。”のメッセージが表示されます。

f:id:m_kbou:20190816121241p:plain

・Sheet1シートのA1セルに値を入力しようとすると、「シートが保護されています・・・」的なメッセージが表示されます。

f:id:m_kbou:20190816121258p:plain

指定したシートをパスワードを付けて保護する方法についての説明は以上です。

 

保護されたシートをパスワードを指定して保護解除する方法

保護されたシートをパスワードを指定して保護解除する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Worksheets("sheet1").Unprotect Password:="12345"
    MsgBox "sheet1を保護解除しました。"
End Sub

-------------------------------------------------

内容は、「保護設定されているSheet1シートをパスワード:12345(文字列)で保護解除し、最後にMsgBoxで”Sheet1を保護解除しました。”のメッセージを表示して下さい。」との意味になります。

[実行例]:

・”Sheet1を保護解除しました。”のメッセージが表示されます。

f:id:m_kbou:20190816121315p:plain

・Sheet1シートのA1セルに値(数字の1)を入力すると、入力できる事がわかります。

f:id:m_kbou:20190816122010p:plain

保護されたシートをパスワードを指定して保護解除する方法についての説明は以上です。

 

おわりに

今回は、シートをパスワードを指定して保護又は保護解除する方法について説明しました。しかし、シートをパスワードを指定して保護したとしても、シート内のセルがロック状態になっていないとセルに値を入力(セル内を変更)する事は可能となります。よって、シート保護とシート内のセルロックは、一連の処理をする事で初めて有効(入力不可)になると覚えておいて下さい。