Excel VBAメモ シートの保護を解除してみる
野暮用で必要になったので。
ポイントはこんな感じ。
- Worksheet.ProtectContentsプロパティでシートが保護されているか確認する
- シートが保護されている場合はWorksheet.Unprotectメソッドで保護を解除する
サンプルで用意したExcelのファイルはこんな感じ。
シート1枚目は保護なし、シート2枚目は保護あり、シート3枚目は保護ありだけど非表示。
ちなみに保護のパスワードはなし。
保護の条件はこんな感じ。
コードはこんな感じ。
Public Sub Method() ' 変数を定義する Dim objSheet As Worksheet ' シートの保護を解除する On Error GoTo MethodEnd ' すべてのシートを対象にする For Each objSheet In ActiveWorkbook.Sheets ' シートが保護されているかチェックする If objSheet.ProtectContents = True Then ' シートが保護されている場合は保護を解除する ' ※パスワード付の場合は引数にパスワードを指定する必要がある objSheet.Unprotect End If Next MethodEnd: End Sub
実行してみるとこんな。
パッと見は変化なし。
確認で2枚目のシートのセルに値を入力してみるとできた。
3枚目のシートも表示してセルに値を入力してみるとできた。
んまま、明日への自分へのメモってことで。
ディスカッション
コメント一覧
まだ、コメントがありません