
Excelでシートが保護されているのに気付かず、VBAでセルを操作しようとしたりするとエラーになります。
セル操作の前にはシートが保護されているかどうかチェックをすると良いです。
VBAでシート保護されているかどうかを調べるには「ProtectContents」を使います。
< スポンサーリンク >
シートが保護されているか調べる例
シートの内容が保護されているかどうかをメッセージで表示してみます。
Sub test()
With ActiveSheet
If .ProtectContents = True Then
MsgBox "保護されています"
ElseIf .ProtectContents = False Then
MsbBox "保護されていません"
End If
End With
End Sub
保護されている場合

保護されていない場合

シート保護されている場合は、保護を解除します。
Sub test()
With ActiveSheet
If .ProtectContents = True Then
.Unprotect
End If
End With
End Sub

「ProtectContents」構文
Worksheetオブジェクト.ProtectContents
Trueの場合はシートの内容が保護されています。取得のみ可能なBoolean型です。
こんな記事も書いています
