エクセルVBAで指定したシートに保護をかける

エクセルVBAで、シートに保護をかける方法を紹介しています。例えば、共有しているエクセルファイルで、一部、重要なシートがある時! 誤って編集されてしまうと困ります。そのような場合に、誰にも編集できないように、シートの保護をかけると、安心できます。ですが、シートの保護の解除は、誰にでもすぐできます。より安心安全に保護するために、シートの保護にパスワードを設定すると、誰でも編集できなくなります。ここでは、指定したシートを保護する方法と、解除する方法、更に、パスワード付きのシートの保護と、解除の方法を説明しています。シートの保護と解除をワンクリックで行いたい場合は、シート上にボタンを作成して、シートの保護、または解除のVBAを登録すると、ボタンをクリックするだけで、シートを保護したり、解除したりできます。

 

 

シートの保護

 

シートの保護には、Protectメソッドを使用します。

シートの保護にパスワードを設定する場合は、Protectメソッドの引数Passwordに、パスワードを指定します。

 

 

シートに保護をかける

指定したシートに、保護をかけるコードです。

「2018年度売上」シートに、保護をかけてみましょう。

Sub シートの保護()
Dim SheetX As Worksheet
Set SheetX = Worksheets(“2018年度売上”)
SheetX.Protect
End Sub

シートの保護を解除する

指定したシートの、保護を解除するコードです。

「2018年度売上」シートの、保護を解除してみましょう。

Sub シートの保護を解除()
Worksheets(“2018年度売上”).Unprotect
End Sub

 

 

シートの保護にパスワードを設定する

エクセルVBAで、パスワードを設定して、シートを保護するコードです。

パスワードを「PW123」に設定して、「2018年度売上」シートに、保護をかけてみましょう。

Sub パスワードを設定してシートの保護()
Dim sheet1 As Worksheet
Set sheet1 = Worksheets(“2018年度売上”)
sheet1.Protect Password:=”PW123″
End Sub

シートの保護とパスワードを解除する

パスワードを設定したシートの保護を、解除するコードです。

パスワードを「PW123」に設定した、「2018年度売上」シートの保護を、解除してみましょう。

Sub シートの保護とパスワードを解除()
Worksheets(“2018年度売上”).Unprotect Password:=”PW123″
End Sub

 

 

シートの保護にユーザーに許可する操作を設定する

シートの保護をする時、許可する操作を細かく設定することができます。

ユーザーに許可する操作を設定して、シートに保護をかけるコードです。

シートの保護を「2018年度売上」にかけて、パスワードを「PW123」に設定しますが、列の書式設定と、行の書式設定ができるように設定してみましょう。

Sub パスワードを設定してシートの保護A()
Dim sheet1 As Worksheet
Set sheet1 = Worksheets(“2018年度売上”)
sheet1.Protect Password:=”PW”, _
AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub

AllowFormattingColumns にTrueを設定すると、列の書式設定を許可します。

AllowFormattingRows にTrueを設定すると、行の書式設定を許可します。

パスワードを設定したシートの保護

エクセルVBAでシートの保護、解除は簡単にできます。共有ファイルで、重要なシートがある場合、誤って編集できないようにすることは大事です。更に、パスワードをかけると安全安心です。ですが、一部の操作だけ、できるようにしたい場合もあります。そのような時も、細かく操作を設定することができます。シートの保護は、簡単にタブからもできますが、パスワードを設定したときに、エクセルVBAだと、パスワードを入力せずに、設定、解除できます。

こちらの記事もご覧ください。⇒エクセル シートの保護と解除!一部のセルだけ保護を設定