Excelでシートが保護されているのに気付かず、VBAでセルを操作しようとしたりするとエラーになります。
VBAでシート保護されているかどうかを調べるには「ProtectContents」を使います。
下図は、Excel2016です。
< スポンサーリンク >
例
シートの内容が保護されているかどうかをメッセージで表示してみます。
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
構文
Worksheetオブジェクト.ProtectContents
Trueの場合はシートの内容が保護されています。これにより、個々のセルが保護されます。取得のみ可能なBoolean型です。
こんな記事も書いています